<?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>171474</bug_id>
          
          <creation_ts>2017-04-29 01:49:50 -0700</creation_ts>
          <short_desc>[JSC] LabelScopePtr is not necessary</short_desc>
          <delta_ts>2017-04-29 09:33:08 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>buildbot</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1302989</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-29 01:49:50 -0700</bug_when>
    <thetext>At the time of introducing LabelScopePtr, there is code that copying m_labelScope. So, m_labelScope is Vector&lt;&gt; instead of SegmentedVector and a bit special handle (LabelScopePtr) is needed.
But right now, there is no code copying m_labelScopes. So, we can take the same design to Label, RegisterID etc. Use SegmentedVector and usual Ref&lt;&gt; / RefPtr&lt;&gt;. Then drops LabelScopePtr.
And we also makes LabelScope noncopyable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302994</commentid>
    <comment_count>1</comment_count>
      <attachid>308664</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-29 03:58:05 -0700</bug_when>
    <thetext>Created attachment 308664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302995</commentid>
    <comment_count>2</comment_count>
      <attachid>308664</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-29 03:59:01 -0700</bug_when>
    <thetext>Comment on attachment 308664
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:72
&gt; +    // loop condition is a workaround.

Old code says so. But I&apos;m not sure the above claim is still valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303005</commentid>
    <comment_count>3</comment_count>
      <attachid>308664</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-04-29 09:18:55 -0700</bug_when>
    <thetext>Comment on attachment 308664
Patch

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

r=me

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:66
&gt; +static inline void reclaim(T&amp; segmentedVector)

I would call this &quot;shrinkToFit&quot; like Vector&lt;T&gt;::shrinkToFit.

&gt;&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:72
&gt;&gt; +    // loop condition is a workaround.
&gt; 
&gt; Old code says so. But I&apos;m not sure the above claim is still valid.

I think it&apos;s good to remove workarounds like this over time. Maybe we should remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303007</commentid>
    <comment_count>4</comment_count>
      <attachid>308664</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-29 09:30:21 -0700</bug_when>
    <thetext>Comment on attachment 308664
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:66
&gt;&gt; +static inline void reclaim(T&amp; segmentedVector)
&gt; 
&gt; I would call this &quot;shrinkToFit&quot; like Vector&lt;T&gt;::shrinkToFit.

Fixed.

&gt;&gt;&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:72
&gt;&gt;&gt; +    // loop condition is a workaround.
&gt;&gt; 
&gt;&gt; Old code says so. But I&apos;m not sure the above claim is still valid.
&gt; 
&gt; I think it&apos;s good to remove workarounds like this over time. Maybe we should remove this.

Dropped. Just use cleaner way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303008</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-29 09:33:08 -0700</bug_when>
    <thetext>Committed r215972: &lt;http://trac.webkit.org/changeset/215972&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308664</attachid>
            <date>2017-04-29 03:58:05 -0700</date>
            <delta_ts>2017-04-29 09:18:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171474-20170429195804.patch</filename>
            <type>text/plain</type>
            <size>22306</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
N2JjYzJkMGY2NDliYzUzZTNkMTA2NzBhOThkNWZjYmY1YWJlOTQyLi5hZDllMjE5YjkwMzE3MTJl
MDMzNWZkMGU1MmUzZTc5NmNjOGFkNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAxNy0wNC0yOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBMYWJlbFNjb3BlUHRyIGlzIG5vdCBuZWNlc3NhcnkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQ3NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9yaWdpbmFsbHks
IExhYmVsU2NvcGVQdHIgaXMgaW50cm9kdWNlZCBiZWNhdXNlIExhYmVsU2NvcGVzIHVzZXMgVmVj
dG9yPD4gaW5zdGVhZCBvZiBTZWdtZW50ZWRWZWN0b3I8Pi4KKyAgICAgICAgTGFiZWxTY29wZVB0
ciBob2xkcyB0aGUgcG9pbnRlciB0byB0aGUgdmVjdG9yIG93bmVyIGFuZCBpbmRleCBpbnN0ZWFk
IG9mIHRoZSBwb2ludGVyIHRvIExhYmVsU2NvcGUgZGlyZWN0bHkKKyAgICAgICAgc2luY2UgVmVj
dG9yPD4gY2FuIHJlbG9jYXRlIExvY2FsU2NvcGVzIGluc2lkZSBpdC4KKyAgICAgICAgVGhlIHJl
YXNvbiB3aHkgTGFiZWxTY29wZXMgdXNlIFZlY3RvciBpbnN0ZWFkIGlzIHRoYXQgdGhlcmUgaXMg
Y29kZSBjb3B5aW5nIHRoaXMgdmVjdG9yLiBTZWdtZW50ZWRWZWN0b3I8PgorICAgICAgICBwcm9o
aWJpdHMgY29weWluZyBzaW5jZSBpdCBpcyBzbyBjb3N0bHkuIFNvLCB3ZSB1c2VkIFZlY3Rvcjw+
IGhlcmUgaW5zdGVhZCBvZiBTZWdtZW50ZWRWZWN0b3I8Pi4KKworICAgICAgICBCdXQgdGhlIGxh
dGVzdCBjb2RlIGRvZXMgbm90IGhhdmUgY29weWluZyBjb2RlIGZvciBMYWJlbFNjb3Blcy4gVGh1
cywgd2UgY2FuIHRha2UgdGhlIHNhbWUgZGVzaWduIHRvIExhYmVsIGFuZAorICAgICAgICBSZWdp
c3RlcklELiBKdXN0IHVzZSBTZWdtZW50ZWRWZWN0b3I8PiBhbmQgUmVmPD4vUmVmUHRyPD4uIFRo
aXMgcGF0Y2ggcmVtb3ZlcyBMYWJlbFNjb3BlUHRyIHNpbmNlIGl0IGlzIG5vCisgICAgICAgIGxv
bmdlciBuZWNlc3NhcnkuIEFuZCB1c2UgU2VnbWVudGVkVmVjdG9yIGZvciBMYWJlbFNjb3Blcy4K
KworICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OnJlY2xhaW0pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6cmVjbGFp
bUZyZWVSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6bmV3TGFi
ZWxTY29wZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpuZXdMYWJlbCk6Cisg
ICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoRmluYWxseUNvbnRyb2xGbG93U2Nv
cGUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6YnJlYWtUYXJnZXQpOgorICAg
ICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6Y29udGludWVUYXJnZXQpOgorICAgICAgICAo
SlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEVudW1lcmF0aW9uKToKKyAgICAgICAgKiBieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTGFi
ZWxTY29wZS5oOgorICAgICAgICAoSlNDOjpMYWJlbFNjb3BlOjpMYWJlbFNjb3BlKToKKyAgICAg
ICAgKEpTQzo6TGFiZWxTY29wZTo6YnJlYWtUYXJnZXQpOgorICAgICAgICAoSlNDOjpMYWJlbFNj
b3BlOjpjb250aW51ZVRhcmdldCk6CisgICAgICAgIChKU0M6OkxhYmVsU2NvcGU6OnR5cGUpOgor
ICAgICAgICAoSlNDOjpMYWJlbFNjb3BlOjpuYW1lKToKKyAgICAgICAgKEpTQzo6TGFiZWxTY29w
ZTo6c2NvcGVEZXB0aCk6CisgICAgICAgIChKU0M6OkxhYmVsU2NvcGU6OnJlZik6CisgICAgICAg
IChKU0M6OkxhYmVsU2NvcGU6OmRlcmVmKToKKyAgICAgICAgKEpTQzo6TGFiZWxTY29wZTo6cmVm
Q291bnQpOgorICAgICAgICAoSlNDOjpMYWJlbFNjb3BlUHRyOjpMYWJlbFNjb3BlUHRyKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6TGFiZWxTY29wZVB0cjo6b3BlcmF0b3I9KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6TGFiZWxTY29wZVB0cjo6fkxhYmVsU2NvcGVQdHIpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpMYWJlbFNjb3BlUHRyOjpvcGVyYXRvciEpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpMYWJlbFNjb3BlUHRyOjpvcGVyYXRvciopOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpMYWJlbFNjb3BlUHRyOjpvcGVyYXRvci0+KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TGFi
ZWxTY29wZVB0cjo6bnVsbCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkRvV2hpbGVOb2RlOjplbWl0Qnl0ZWNvZGUpOgor
ICAgICAgICAoSlNDOjpXaGlsZU5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkZv
ck5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkZvckluTm9kZTo6ZW1pdEJ5dGVj
b2RlKToKKyAgICAgICAgKEpTQzo6Q29udGludWVOb2RlOjp0cml2aWFsVGFyZ2V0KToKKyAgICAg
ICAgKEpTQzo6Q29udGludWVOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpCcmVh
a05vZGU6OnRyaXZpYWxUYXJnZXQpOgorICAgICAgICAoSlNDOjpCcmVha05vZGU6OmVtaXRCeXRl
Y29kZSk6CisgICAgICAgIChKU0M6OlN3aXRjaE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAg
IChKU0M6OkxhYmVsTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKwogMjAxNy0wNC0yNyAgWXVzdWtlIFN1
enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBIYW5kbGUgUGhh
bnRvbVNwcmVhZCBpbiBMb2FkVmFyYXJncyBhcyB0aGUgc2FtZSB0byB0aGUgb3RoZXJzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwCmluZGV4IDM4ZGY2ODAzY2UzYjkyMjQ4ZGNjOTcxOWY0YjI5Y2ZjYTJiZWY2NzUu
LmVmNjhmMzM0YmVhNGEwZTUwNDI2YjNjYTVjMzEyNmVhYWJhNDdkY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwCkBAIC02Miw2ICs2MiwyMSBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2Ug
SlNDIHsKIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0YXRpYyBpbmxpbmUgdm9pZCByZWNsYWlt
KFQmIHNlZ21lbnRlZFZlY3RvcikKK3sKKyAgICAvLyBUaGUgY29uZGl0aW9uIHdhcyBwcmV2aW91
c2x5IGNvZGVkIGFzICdzZWdtZW50ZWRWZWN0b3Iuc2l6ZSgpICYmICFzZWdtZW50ZWRWZWN0b3Iu
bGFzdCgpLnJlZkNvdW50KCknLAorICAgIC8vIGhvd2V2ZXIgc29tZXRpbWVzIHRoaXMgYXBwZWFy
cyB0byBsZWFkIHRvIEdDQyBnb2luZyBhIGxpdHRsZSBoYXl3aXJlIGFuZCBlbnRlcmluZyB0aGUg
bG9vcCB3aXRoCisgICAgLy8gc2l6ZSAwLCBsZWFkaW5nIHRvIHNlZ2ZhdWx0eSBiYWRuZXNzLiBX
ZSBhcmUgeWV0IHRvIGlkZW50aWZ5IGEgdmFsaWQgY2F1c2Ugd2l0aGluIG91ciBjb2RlIHRvCisg
ICAgLy8gY2F1c2UgdGhlIEdDQyBjb2RlZ2VuIHRvIG1pc2JlaGF2ZSBpbiB0aGlzIGZhc2hpb24s
IGFuZCBhcyBzdWNoIHRoZSBmb2xsb3dpbmcgcmVmYWN0b3Jpbmcgb2YgdGhlCisgICAgLy8gbG9v
cCBjb25kaXRpb24gaXMgYSB3b3JrYXJvdW5kLgorICAgIHdoaWxlIChzZWdtZW50ZWRWZWN0b3Iu
c2l6ZSgpKSB7CisgICAgICAgIGlmICAoc2VnbWVudGVkVmVjdG9yLmxhc3QoKS5yZWZDb3VudCgp
KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHNlZ21lbnRlZFZlY3Rvci5yZW1vdmVMYXN0
KCk7CisgICAgfQorfQorCiB2b2lkIExhYmVsOjpzZXRMb2NhdGlvbih1bnNpZ25lZCBsb2NhdGlv
bikKIHsKICAgICBtX2xvY2F0aW9uID0gbG9jYXRpb247CkBAIC0xMTcwLDggKzExODUsNyBAQCBS
ZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6bmV3UmVnaXN0ZXIoKQogCiB2b2lkIEJ5dGVj
b2RlR2VuZXJhdG9yOjpyZWNsYWltRnJlZVJlZ2lzdGVycygpCiB7Ci0gICAgd2hpbGUgKG1fY2Fs
bGVlTG9jYWxzLnNpemUoKSAmJiAhbV9jYWxsZWVMb2NhbHMubGFzdCgpLnJlZkNvdW50KCkpCi0g
ICAgICAgIG1fY2FsbGVlTG9jYWxzLnJlbW92ZUxhc3QoKTsKKyAgICByZWNsYWltKG1fY2FsbGVl
TG9jYWxzKTsKIH0KIAogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6Om5ld0Jsb2NrU2Nv
cGVWYXJpYWJsZSgpCkBAIC0xMTkwLDIzICsxMjA0LDE4IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2Rl
R2VuZXJhdG9yOjpuZXdUZW1wb3JhcnkoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUxhYmVs
U2NvcGVQdHIgQnl0ZWNvZGVHZW5lcmF0b3I6Om5ld0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6VHlw
ZSB0eXBlLCBjb25zdCBJZGVudGlmaWVyKiBuYW1lKQorUmVmPExhYmVsU2NvcGU+IEJ5dGVjb2Rl
R2VuZXJhdG9yOjpuZXdMYWJlbFNjb3BlKExhYmVsU2NvcGU6OlR5cGUgdHlwZSwgY29uc3QgSWRl
bnRpZmllciogbmFtZSkKIHsKLSAgICAvLyBSZWNsYWltIGZyZWUgbGFiZWwgc2NvcGVzLgotICAg
IHdoaWxlIChtX2xhYmVsU2NvcGVzLnNpemUoKSAmJiAhbV9sYWJlbFNjb3Blcy5sYXN0KCkucmVm
Q291bnQoKSkKLSAgICAgICAgbV9sYWJlbFNjb3Blcy5yZW1vdmVMYXN0KCk7CisgICAgcmVjbGFp
bShtX2xhYmVsU2NvcGVzKTsKIAogICAgIC8vIEFsbG9jYXRlIG5ldyBsYWJlbCBzY29wZS4KLSAg
ICBMYWJlbFNjb3BlIHNjb3BlKHR5cGUsIG5hbWUsIGxhYmVsU2NvcGVEZXB0aCgpLCBuZXdMYWJl
bCgpLCB0eXBlID09IExhYmVsU2NvcGU6Okxvb3AgPyBSZWZQdHI8TGFiZWw+KG5ld0xhYmVsKCkp
IDogUmVmUHRyPExhYmVsPigpKTsgLy8gT25seSBsb29wcyBoYXZlIGNvbnRpbnVlIHRhcmdldHMu
Ci0gICAgbV9sYWJlbFNjb3Blcy5hcHBlbmQoV1RGTW92ZShzY29wZSkpOwotICAgIHJldHVybiBM
YWJlbFNjb3BlUHRyKG1fbGFiZWxTY29wZXMsIG1fbGFiZWxTY29wZXMuc2l6ZSgpIC0gMSk7Cisg
ICAgbV9sYWJlbFNjb3Blcy5hcHBlbmQodHlwZSwgbmFtZSwgbGFiZWxTY29wZURlcHRoKCksIG5l
d0xhYmVsKCksIHR5cGUgPT0gTGFiZWxTY29wZTo6TG9vcCA/IFJlZlB0cjxMYWJlbD4obmV3TGFi
ZWwoKSkgOiBSZWZQdHI8TGFiZWw+KCkpOyAvLyBPbmx5IGxvb3BzIGhhdmUgY29udGludWUgdGFy
Z2V0cy4KKyAgICByZXR1cm4gbV9sYWJlbFNjb3Blcy5sYXN0KCk7CiB9CiAKIFJlZjxMYWJlbD4g
Qnl0ZWNvZGVHZW5lcmF0b3I6Om5ld0xhYmVsKCkKIHsKLSAgICAvLyBSZWNsYWltIGZyZWUgbGFi
ZWwgSURzLgotICAgIHdoaWxlIChtX2xhYmVscy5zaXplKCkgJiYgIW1fbGFiZWxzLmxhc3QoKS5y
ZWZDb3VudCgpKQotICAgICAgICBtX2xhYmVscy5yZW1vdmVMYXN0KCk7CisgICAgcmVjbGFpbSht
X2xhYmVscyk7CiAKICAgICAvLyBBbGxvY2F0ZSBuZXcgbGFiZWwgSUQuCiAgICAgbV9sYWJlbHMu
YXBwZW5kKCp0aGlzKTsKQEAgLTM3NjgsOSArMzc3Nyw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRXaWxsTGVhdmVDYWxsRnJhbWVEZWJ1Z0hvb2soKQogCiBGaW5hbGx5Q29udGV4dCog
Qnl0ZWNvZGVHZW5lcmF0b3I6OnB1c2hGaW5hbGx5Q29udHJvbEZsb3dTY29wZShMYWJlbCYgZmlu
YWxseUxhYmVsKQogewotICAgIC8vIFJlY2xhaW0gZnJlZSBsYWJlbCBzY29wZXMuCi0gICAgd2hp
bGUgKG1fbGFiZWxTY29wZXMuc2l6ZSgpICYmICFtX2xhYmVsU2NvcGVzLmxhc3QoKS5yZWZDb3Vu
dCgpKQotICAgICAgICBtX2xhYmVsU2NvcGVzLnJlbW92ZUxhc3QoKTsKKyAgICByZWNsYWltKG1f
bGFiZWxTY29wZXMpOwogCiAgICAgQ29udHJvbEZsb3dTY29wZSBzY29wZShDb250cm9sRmxvd1Nj
b3BlOjpGaW5hbGx5LCBjdXJyZW50TGV4aWNhbFNjb3BlSW5kZXgoKSwgRmluYWxseUNvbnRleHQo
bV9jdXJyZW50RmluYWxseUNvbnRleHQsIGZpbmFsbHlMYWJlbCkpOwogICAgIG1fY29udHJvbEZs
b3dTY29wZVN0YWNrLmFwcGVuZChXVEZNb3ZlKHNjb3BlKSk7CkBAIC0zNzkxLDc3ICszNzk4LDY0
IEBAIEZpbmFsbHlDb250ZXh0IEJ5dGVjb2RlR2VuZXJhdG9yOjpwb3BGaW5hbGx5Q29udHJvbEZs
b3dTY29wZSgpCiAgICAgcmV0dXJuIG1fY29udHJvbEZsb3dTY29wZVN0YWNrLnRha2VMYXN0KCku
ZmluYWxseUNvbnRleHQ7CiB9CiAKLUxhYmVsU2NvcGVQdHIgQnl0ZWNvZGVHZW5lcmF0b3I6OmJy
ZWFrVGFyZ2V0KGNvbnN0IElkZW50aWZpZXImIG5hbWUpCitSZWZQdHI8TGFiZWxTY29wZT4gQnl0
ZWNvZGVHZW5lcmF0b3I6OmJyZWFrVGFyZ2V0KGNvbnN0IElkZW50aWZpZXImIG5hbWUpCiB7Ci0g
ICAgLy8gUmVjbGFpbSBmcmVlIGxhYmVsIHNjb3Blcy4KLSAgICAvLwotICAgIC8vIFRoZSBjb25k
aXRpb24gd2FzIHByZXZpb3VzbHkgY29kZWQgYXMgJ21fbGFiZWxTY29wZXMuc2l6ZSgpICYmICFt
X2xhYmVsU2NvcGVzLmxhc3QoKS5yZWZDb3VudCgpJywKLSAgICAvLyBob3dldmVyIHNvbWV0aW1l
cyB0aGlzIGFwcGVhcnMgdG8gbGVhZCB0byBHQ0MgZ29pbmcgYSBsaXR0bGUgaGF5d2lyZSBhbmQg
ZW50ZXJpbmcgdGhlIGxvb3Agd2l0aAotICAgIC8vIHNpemUgMCwgbGVhZGluZyB0byBzZWdmYXVs
dHkgYmFkbmVzcy4gIFdlIGFyZSB5ZXQgdG8gaWRlbnRpZnkgYSB2YWxpZCBjYXVzZSB3aXRoaW4g
b3VyIGNvZGUgdG8KLSAgICAvLyBjYXVzZSB0aGUgR0NDIGNvZGVnZW4gdG8gbWlzYmVoYXZlIGlu
IHRoaXMgZmFzaGlvbiwgYW5kIGFzIHN1Y2ggdGhlIGZvbGxvd2luZyByZWZhY3RvcmluZyBvZiB0
aGUKLSAgICAvLyBsb29wIGNvbmRpdGlvbiBpcyBhIHdvcmthcm91bmQuCi0gICAgd2hpbGUgKG1f
bGFiZWxTY29wZXMuc2l6ZSgpKSB7Ci0gICAgICAgIGlmICAobV9sYWJlbFNjb3Blcy5sYXN0KCku
cmVmQ291bnQoKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBtX2xhYmVsU2NvcGVzLnJl
bW92ZUxhc3QoKTsKLSAgICB9CisgICAgcmVjbGFpbShtX2xhYmVsU2NvcGVzKTsKIAogICAgIGlm
ICghbV9sYWJlbFNjb3Blcy5zaXplKCkpCi0gICAgICAgIHJldHVybiBMYWJlbFNjb3BlUHRyOjpu
dWxsKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gV2Ugc3BlY2lhbC1jYXNl
IHRoZSBmb2xsb3dpbmcsIHdoaWNoIGlzIGEgc3ludGF4IGVycm9yIGluIEZpcmVmb3g6CiAgICAg
Ly8gbGFiZWw6CiAgICAgLy8gICAgIGJyZWFrOwogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkgewog
ICAgICAgICBmb3IgKGludCBpID0gbV9sYWJlbFNjb3Blcy5zaXplKCkgLSAxOyBpID49IDA7IC0t
aSkgewotICAgICAgICAgICAgTGFiZWxTY29wZSogc2NvcGUgPSAmbV9sYWJlbFNjb3Blc1tpXTsK
LSAgICAgICAgICAgIGlmIChzY29wZS0+dHlwZSgpICE9IExhYmVsU2NvcGU6Ok5hbWVkTGFiZWwp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIExhYmVsU2NvcGVQdHIobV9sYWJlbFNjb3BlcywgaSk7
CisgICAgICAgICAgICBMYWJlbFNjb3BlJiBzY29wZSA9IG1fbGFiZWxTY29wZXNbaV07CisgICAg
ICAgICAgICBpZiAoc2NvcGUudHlwZSgpICE9IExhYmVsU2NvcGU6Ok5hbWVkTGFiZWwpCisgICAg
ICAgICAgICAgICAgcmV0dXJuICZzY29wZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gTGFi
ZWxTY29wZVB0cjo6bnVsbCgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAg
ICBmb3IgKGludCBpID0gbV9sYWJlbFNjb3Blcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewot
ICAgICAgICBMYWJlbFNjb3BlKiBzY29wZSA9ICZtX2xhYmVsU2NvcGVzW2ldOwotICAgICAgICBp
ZiAoc2NvcGUtPm5hbWUoKSAmJiAqc2NvcGUtPm5hbWUoKSA9PSBuYW1lKQotICAgICAgICAgICAg
cmV0dXJuIExhYmVsU2NvcGVQdHIobV9sYWJlbFNjb3BlcywgaSk7CisgICAgICAgIExhYmVsU2Nv
cGUmIHNjb3BlID0gbV9sYWJlbFNjb3Blc1tpXTsKKyAgICAgICAgaWYgKHNjb3BlLm5hbWUoKSAm
JiAqc2NvcGUubmFtZSgpID09IG5hbWUpCisgICAgICAgICAgICByZXR1cm4gJnNjb3BlOwogICAg
IH0KLSAgICByZXR1cm4gTGFiZWxTY29wZVB0cjo6bnVsbCgpOworICAgIHJldHVybiBudWxscHRy
OwogfQogCi1MYWJlbFNjb3BlUHRyIEJ5dGVjb2RlR2VuZXJhdG9yOjpjb250aW51ZVRhcmdldChj
b25zdCBJZGVudGlmaWVyJiBuYW1lKQorUmVmUHRyPExhYmVsU2NvcGU+IEJ5dGVjb2RlR2VuZXJh
dG9yOjpjb250aW51ZVRhcmdldChjb25zdCBJZGVudGlmaWVyJiBuYW1lKQogewotICAgIC8vIFJl
Y2xhaW0gZnJlZSBsYWJlbCBzY29wZXMuCi0gICAgd2hpbGUgKG1fbGFiZWxTY29wZXMuc2l6ZSgp
ICYmICFtX2xhYmVsU2NvcGVzLmxhc3QoKS5yZWZDb3VudCgpKQotICAgICAgICBtX2xhYmVsU2Nv
cGVzLnJlbW92ZUxhc3QoKTsKKyAgICByZWNsYWltKG1fbGFiZWxTY29wZXMpOwogCiAgICAgaWYg
KCFtX2xhYmVsU2NvcGVzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIExhYmVsU2NvcGVQdHI6Om51
bGwoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAobmFtZS5pc0VtcHR5KCkp
IHsKICAgICAgICAgZm9yIChpbnQgaSA9IG1fbGFiZWxTY29wZXMuc2l6ZSgpIC0gMTsgaSA+PSAw
OyAtLWkpIHsKLSAgICAgICAgICAgIExhYmVsU2NvcGUqIHNjb3BlID0gJm1fbGFiZWxTY29wZXNb
aV07Ci0gICAgICAgICAgICBpZiAoc2NvcGUtPnR5cGUoKSA9PSBMYWJlbFNjb3BlOjpMb29wKSB7
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHNjb3BlLT5jb250aW51ZVRhcmdldCgpKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gTGFiZWxTY29wZVB0cihtX2xhYmVsU2NvcGVzLCBpKTsKKyAgICAg
ICAgICAgIExhYmVsU2NvcGUmIHNjb3BlID0gbV9sYWJlbFNjb3Blc1tpXTsKKyAgICAgICAgICAg
IGlmIChzY29wZS50eXBlKCkgPT0gTGFiZWxTY29wZTo6TG9vcCkgeworICAgICAgICAgICAgICAg
IEFTU0VSVChzY29wZS5jb250aW51ZVRhcmdldCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
JnNjb3BlOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBMYWJlbFNj
b3BlUHRyOjpudWxsKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIC8v
IENvbnRpbnVlIHRvIHRoZSBsb29wIG5lc3RlZCBuZWFyZXN0IHRvIHRoZSBsYWJlbCBzY29wZSB0
aGF0IG1hdGNoZXMKICAgICAvLyAnbmFtZScuCi0gICAgTGFiZWxTY29wZVB0ciByZXN1bHQgPSBM
YWJlbFNjb3BlUHRyOjpudWxsKCk7CisgICAgTGFiZWxTY29wZSogcmVzdWx0ID0gbnVsbHB0cjsK
ICAgICBmb3IgKGludCBpID0gbV9sYWJlbFNjb3Blcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkg
ewotICAgICAgICBMYWJlbFNjb3BlKiBzY29wZSA9ICZtX2xhYmVsU2NvcGVzW2ldOwotICAgICAg
ICBpZiAoc2NvcGUtPnR5cGUoKSA9PSBMYWJlbFNjb3BlOjpMb29wKSB7Ci0gICAgICAgICAgICBB
U1NFUlQoc2NvcGUtPmNvbnRpbnVlVGFyZ2V0KCkpOwotICAgICAgICAgICAgcmVzdWx0ID0gTGFi
ZWxTY29wZVB0cihtX2xhYmVsU2NvcGVzLCBpKTsKKyAgICAgICAgTGFiZWxTY29wZSYgc2NvcGUg
PSBtX2xhYmVsU2NvcGVzW2ldOworICAgICAgICBpZiAoc2NvcGUudHlwZSgpID09IExhYmVsU2Nv
cGU6Okxvb3ApIHsKKyAgICAgICAgICAgIEFTU0VSVChzY29wZS5jb250aW51ZVRhcmdldCgpKTsK
KyAgICAgICAgICAgIHJlc3VsdCA9ICZzY29wZTsKICAgICAgICAgfQotICAgICAgICBpZiAoc2Nv
cGUtPm5hbWUoKSAmJiAqc2NvcGUtPm5hbWUoKSA9PSBuYW1lKQorICAgICAgICBpZiAoc2NvcGUu
bmFtZSgpICYmICpzY29wZS5uYW1lKCkgPT0gbmFtZSkKICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7IC8vIG1heSBiZSBudWxsLgogICAgIH0KLSAgICByZXR1cm4gTGFiZWxTY29wZVB0cjo6bnVs
bCgpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjph
bGxvY2F0ZUNhbGxlZVNhdmVTcGFjZSgpCkBAIC00MjIzLDcgKzQyMTcsNyBAQCB2b2lkIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0RW51bWVyYXRpb24oVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEqIG5v
ZGUsIEV4cHJlc3NpbwogICAgIEZpbmFsbHlDb250ZXh0KiBmaW5hbGx5Q29udGV4dCA9IHB1c2hG
aW5hbGx5Q29udHJvbEZsb3dTY29wZShmaW5hbGx5TGFiZWwuZ2V0KCkpOwogCiAgICAgewotICAg
ICAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gbmV3TGFiZWxTY29wZShMYWJlbFNjb3BlOjpMb29w
KTsKKyAgICAgICAgUmVmPExhYmVsU2NvcGU+IHNjb3BlID0gbmV3TGFiZWxTY29wZShMYWJlbFNj
b3BlOjpMb29wKTsKICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHZhbHVlID0gbmV3VGVtcG9y
YXJ5KCk7CiAgICAgICAgIGVtaXRMb2FkKHZhbHVlLmdldCgpLCBqc1VuZGVmaW5lZCgpKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5oCmluZGV4IDE2YTMwYTA2ODAxYTUwYTFkYTU5MzVhM2Y5YmEwMGVkMGM5MzdmZDQu
LjcwYTNkNGRkN2I1Mjg0MTA1YTFjOTk5ODc2Nzk3Y2FjN2QzMzg1OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgK
QEAgLTQ0NCw3ICs0NDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBk
c3QgPT0gaWdub3JlZFJlc3VsdCgpID8gMCA6IChkc3QgJiYgZHN0ICE9IHNyYykgPyBlbWl0TW92
ZShkc3QsIHNyYykgOiBzcmM7CiAgICAgICAgIH0KIAotICAgICAgICBMYWJlbFNjb3BlUHRyIG5l
d0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6VHlwZSwgY29uc3QgSWRlbnRpZmllciogPSAwKTsKKyAg
ICAgICAgUmVmPExhYmVsU2NvcGU+IG5ld0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6VHlwZSwgY29u
c3QgSWRlbnRpZmllciogPSAwKTsKICAgICAgICAgUmVmPExhYmVsPiBuZXdMYWJlbCgpOwogICAg
ICAgICBSZWY8TGFiZWw+IG5ld0VtaXR0ZWRMYWJlbCgpOwogCkBAIC04NTQsOCArODU0LDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgcG9wU3RydWN0dXJlRm9ySW5TY29wZShSZWdp
c3RlcklEKiBsb2NhbCk7CiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZUZvckluQ29udGV4dEZvckxv
Y2FsKFJlZ2lzdGVySUQqIGxvY2FsKTsKIAotICAgICAgICBMYWJlbFNjb3BlUHRyIGJyZWFrVGFy
Z2V0KGNvbnN0IElkZW50aWZpZXImKTsKLSAgICAgICAgTGFiZWxTY29wZVB0ciBjb250aW51ZVRh
cmdldChjb25zdCBJZGVudGlmaWVyJik7CisgICAgICAgIFJlZlB0cjxMYWJlbFNjb3BlPiBicmVh
a1RhcmdldChjb25zdCBJZGVudGlmaWVyJik7CisgICAgICAgIFJlZlB0cjxMYWJlbFNjb3BlPiBj
b250aW51ZVRhcmdldChjb25zdCBJZGVudGlmaWVyJik7CiAKICAgICAgICAgdm9pZCBiZWdpblN3
aXRjaChSZWdpc3RlcklEKiwgU3dpdGNoSW5mbzo6U3dpdGNoVHlwZSk7CiAgICAgICAgIHZvaWQg
ZW5kU3dpdGNoKHVpbnQzMl90IGNsYXVzZUNvdW50LCBjb25zdCBWZWN0b3I8UmVmPExhYmVsPiwg
OD4mLCBFeHByZXNzaW9uTm9kZSoqLCBMYWJlbCYgZGVmYXVsdExhYmVsLCBpbnQzMl90IG1pbiwg
aW50MzJfdCByYW5nZSk7CkBAIC0xMDg4LDcgKzEwODgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgU2VnbWVudGVkVmVjdG9yPFJlZ2lzdGVySUQsIDMyPiBtX2NhbGxlZUxvY2FsczsKICAg
ICAgICAgU2VnbWVudGVkVmVjdG9yPFJlZ2lzdGVySUQsIDMyPiBtX3BhcmFtZXRlcnM7CiAgICAg
ICAgIFNlZ21lbnRlZFZlY3RvcjxMYWJlbCwgMzI+IG1fbGFiZWxzOwotICAgICAgICBMYWJlbFNj
b3BlU3RvcmUgbV9sYWJlbFNjb3BlczsKKyAgICAgICAgU2VnbWVudGVkVmVjdG9yPExhYmVsU2Nv
cGUsIDMyPiBtX2xhYmVsU2NvcGVzOwogICAgICAgICB1bnNpZ25lZCBtX2ZpbmFsbHlEZXB0aCB7
IDAgfTsKICAgICAgICAgaW50IG1fbG9jYWxTY29wZURlcHRoIHsgMCB9OwogICAgICAgICBjb25z
dCBDb2RlVHlwZSBtX2NvZGVUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9MYWJlbFNjb3BlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0xhYmVsU2NvcGUuaAppbmRleCA0ZDc2MTMzZjEzZDEwYzMzYmVkMWE0MWIzMTMyMzZl
MjZkZjA1MDkwLi4wMGEzMDdjZTA3YThjYjMyMjg5M2JhNjE1ODQ0MjY3MTNmOGY3N2I2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0xhYmVsU2NvcGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0xhYmVsU2NvcGUuaApAQCAt
MzIsMTAxICszMiw0NSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotICAgIGNsYXNzIElkZW50aWZp
ZXI7Ci0KLSAgICBjbGFzcyBMYWJlbFNjb3BlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGVudW0g
VHlwZSB7IExvb3AsIFN3aXRjaCwgTmFtZWRMYWJlbCB9OwotCi0gICAgICAgIExhYmVsU2NvcGUo
VHlwZSB0eXBlLCBjb25zdCBJZGVudGlmaWVyKiBuYW1lLCBpbnQgc2NvcGVEZXB0aCwgUmVmPExh
YmVsPiYmIGJyZWFrVGFyZ2V0LCBSZWZQdHI8TGFiZWw+JiYgY29udGludWVUYXJnZXQpCi0gICAg
ICAgICAgICA6IG1fcmVmQ291bnQoMCkKLSAgICAgICAgICAgICwgbV90eXBlKHR5cGUpCi0gICAg
ICAgICAgICAsIG1fbmFtZShuYW1lKQotICAgICAgICAgICAgLCBtX3Njb3BlRGVwdGgoc2NvcGVE
ZXB0aCkKLSAgICAgICAgICAgICwgbV9icmVha1RhcmdldChXVEZNb3ZlKGJyZWFrVGFyZ2V0KSkK
LSAgICAgICAgICAgICwgbV9jb250aW51ZVRhcmdldChXVEZNb3ZlKGNvbnRpbnVlVGFyZ2V0KSkK
LSAgICAgICAgewotICAgICAgICB9Ci0gICAgICAgIGludCByZWZDb3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVmQ291bnQ7IH0KLQotICAgICAgICBMYWJlbCYgYnJlYWtUYXJnZXQoKSBjb25zdCB7
IHJldHVybiBtX2JyZWFrVGFyZ2V0LmdldCgpOyB9Ci0gICAgICAgIExhYmVsKiBjb250aW51ZVRh
cmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGludWVUYXJnZXQuZ2V0KCk7IH0KLQotICAgICAg
ICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICAgICAgY29uc3QgSWRl
bnRpZmllciogbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQotICAgICAgICBpbnQgc2Nv
cGVEZXB0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NvcGVEZXB0aDsgfQotCi0gICAgcHJpdmF0ZToK
LSAgICAgICAgZnJpZW5kIGNsYXNzIExhYmVsU2NvcGVQdHI7Ci0KLSAgICAgICAgdm9pZCByZWYo
KSB7ICsrbV9yZWZDb3VudDsgfQotICAgICAgICB2b2lkIGRlcmVmKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgLS1tX3JlZkNvdW50OwotICAgICAgICAgICAgQVNTRVJUKG1fcmVmQ291bnQgPj0g
MCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnQgbV9yZWZDb3VudDsKLSAgICAgICAgVHlwZSBt
X3R5cGU7Ci0gICAgICAgIGNvbnN0IElkZW50aWZpZXIqIG1fbmFtZTsKLSAgICAgICAgaW50IG1f
c2NvcGVEZXB0aDsKLSAgICAgICAgUmVmPExhYmVsPiBtX2JyZWFrVGFyZ2V0OwotICAgICAgICBS
ZWZQdHI8TGFiZWw+IG1fY29udGludWVUYXJnZXQ7Ci0gICAgfTsKLQotICAgIHR5cGVkZWYgVmVj
dG9yPExhYmVsU2NvcGUsIDg+IExhYmVsU2NvcGVTdG9yZTsKLQotICAgIGNsYXNzIExhYmVsU2Nv
cGVQdHIgewotICAgIHB1YmxpYzoKLSAgICAgICAgTGFiZWxTY29wZVB0cigpCi0gICAgICAgICAg
ICA6IG1fb3duZXIoMCkKLSAgICAgICAgICAgICwgbV9pbmRleCgwKQotICAgICAgICB7Ci0gICAg
ICAgIH0KLSAgICAgICAgTGFiZWxTY29wZVB0cihMYWJlbFNjb3BlU3RvcmUmIG93bmVyLCBzaXpl
X3QgaW5kZXgpCi0gICAgICAgICAgICA6IG1fb3duZXIoJm93bmVyKQotICAgICAgICAgICAgLCBt
X2luZGV4KGluZGV4KQotICAgICAgICB7Ci0gICAgICAgICAgICBtX293bmVyLT5hdChpbmRleCku
cmVmKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBMYWJlbFNjb3BlUHRyKGNvbnN0IExhYmVsU2Nv
cGVQdHImIG90aGVyKQotICAgICAgICAgICAgOiBtX293bmVyKG90aGVyLm1fb3duZXIpCi0gICAg
ICAgICAgICAsIG1faW5kZXgob3RoZXIubV9pbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKG1fb3duZXIpCi0gICAgICAgICAgICAgICAgbV9vd25lci0+YXQobV9pbmRleCkucmVmKCk7
Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBMYWJlbFNjb3BlUHRyJiBvcGVyYXRvcj0oY29u
c3QgTGFiZWxTY29wZVB0ciYgb3RoZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChvdGhl
ci5tX293bmVyKQotICAgICAgICAgICAgICAgIG90aGVyLm1fb3duZXItPmF0KG90aGVyLm1faW5k
ZXgpLnJlZigpOwotICAgICAgICAgICAgaWYgKG1fb3duZXIpCi0gICAgICAgICAgICAgICAgbV9v
d25lci0+YXQobV9pbmRleCkuZGVyZWYoKTsKLSAgICAgICAgICAgIG1fb3duZXIgPSBvdGhlci5t
X293bmVyOwotICAgICAgICAgICAgbV9pbmRleCA9IG90aGVyLm1faW5kZXg7Ci0gICAgICAgICAg
ICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLQotICAgICAgICB+TGFiZWxTY29wZVB0cigpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtX293bmVyKQotICAgICAgICAgICAgICAgIG1fb3du
ZXItPmF0KG1faW5kZXgpLmRlcmVmKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJh
dG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX293bmVyOyB9Ci0KLSAgICAgICAgTGFiZWxTY29wZSYg
b3BlcmF0b3IqKCkgeyBBU1NFUlQobV9vd25lcik7IHJldHVybiBtX293bmVyLT5hdChtX2luZGV4
KTsgfQotICAgICAgICBMYWJlbFNjb3BlKiBvcGVyYXRvci0+KCkgeyBBU1NFUlQobV9vd25lcik7
IHJldHVybiAmbV9vd25lci0+YXQobV9pbmRleCk7IH0KLSAgICAgICAgY29uc3QgTGFiZWxTY29w
ZSYgb3BlcmF0b3IqKCkgY29uc3QgeyBBU1NFUlQobV9vd25lcik7IHJldHVybiBtX293bmVyLT5h
dChtX2luZGV4KTsgfQotICAgICAgICBjb25zdCBMYWJlbFNjb3BlKiBvcGVyYXRvci0+KCkgY29u
c3QgeyBBU1NFUlQobV9vd25lcik7IHJldHVybiAmbV9vd25lci0+YXQobV9pbmRleCk7IH0KLQot
ICAgICAgICBzdGF0aWMgTGFiZWxTY29wZVB0ciBudWxsKCkgeyByZXR1cm4gTGFiZWxTY29wZVB0
cigpOyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBMYWJlbFNjb3BlU3RvcmUqIG1fb3duZXI7
Ci0gICAgICAgIHNpemVfdCBtX2luZGV4OwotICAgIH07CitjbGFzcyBJZGVudGlmaWVyOworCitj
bGFzcyBMYWJlbFNjb3BlIHsKK1dURl9NQUtFX05PTkNPUFlBQkxFKExhYmVsU2NvcGUpOworcHVi
bGljOgorICAgIGVudW0gVHlwZSB7IExvb3AsIFN3aXRjaCwgTmFtZWRMYWJlbCB9OworCisgICAg
TGFiZWxTY29wZShUeXBlIHR5cGUsIGNvbnN0IElkZW50aWZpZXIqIG5hbWUsIGludCBzY29wZURl
cHRoLCBSZWY8TGFiZWw+JiYgYnJlYWtUYXJnZXQsIFJlZlB0cjxMYWJlbD4mJiBjb250aW51ZVRh
cmdldCkKKyAgICAgICAgOiBtX3JlZkNvdW50KDApCisgICAgICAgICwgbV90eXBlKHR5cGUpCisg
ICAgICAgICwgbV9uYW1lKG5hbWUpCisgICAgICAgICwgbV9zY29wZURlcHRoKHNjb3BlRGVwdGgp
CisgICAgICAgICwgbV9icmVha1RhcmdldChXVEZNb3ZlKGJyZWFrVGFyZ2V0KSkKKyAgICAgICAg
LCBtX2NvbnRpbnVlVGFyZ2V0KFdURk1vdmUoY29udGludWVUYXJnZXQpKQorICAgIHsKKyAgICB9
CisKKyAgICBMYWJlbCYgYnJlYWtUYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX2JyZWFrVGFyZ2V0
LmdldCgpOyB9CisgICAgTGFiZWwqIGNvbnRpbnVlVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9j
b250aW51ZVRhcmdldC5nZXQoKTsgfQorCisgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CisgICAgY29uc3QgSWRlbnRpZmllciogbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQorICAgIGludCBzY29wZURlcHRoKCkgY29uc3QgeyByZXR1cm4gbV9zY29wZURlcHRo
OyB9CisKKyAgICB2b2lkIHJlZigpIHsgKyttX3JlZkNvdW50OyB9CisgICAgdm9pZCBkZXJlZigp
CisgICAgeworICAgICAgICAtLW1fcmVmQ291bnQ7CisgICAgICAgIEFTU0VSVChtX3JlZkNvdW50
ID49IDApOworICAgIH0KKyAgICBpbnQgcmVmQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3JlZkNv
dW50OyB9CisKK3ByaXZhdGU6CisgICAgaW50IG1fcmVmQ291bnQ7CisgICAgVHlwZSBtX3R5cGU7
CisgICAgY29uc3QgSWRlbnRpZmllciogbV9uYW1lOworICAgIGludCBtX3Njb3BlRGVwdGg7Cisg
ICAgUmVmPExhYmVsPiBtX2JyZWFrVGFyZ2V0OworICAgIFJlZlB0cjxMYWJlbD4gbV9jb250aW51
ZVRhcmdldDsKK307CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDliM2M5NDM3MzIw
YzZjOTNjMzhiNDIxZmMwMWY0NTM4MmNkODdhZDQuLmQwMjYzZjA1ZTljYWI2NmE4ZmRkOWY3ODY2
YmViMTlhYzIzZThhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTI2MzQsNyArMjYzNCw3IEBAIHZvaWQgSWZFbHNl
Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVy
SUQqIGRzdCkKIAogdm9pZCBEb1doaWxlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKLSAgICBMYWJlbFNjb3BlUHRyIHNj
b3BlID0gZ2VuZXJhdG9yLm5ld0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6TG9vcCk7CisgICAgUmVm
PExhYmVsU2NvcGU+IHNjb3BlID0gZ2VuZXJhdG9yLm5ld0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6
TG9vcCk7CiAKICAgICBSZWY8TGFiZWw+IHRvcE9mTG9vcCA9IGdlbmVyYXRvci5uZXdMYWJlbCgp
OwogICAgIGdlbmVyYXRvci5lbWl0TGFiZWwodG9wT2ZMb29wLmdldCgpKTsKQEAgLTI2NTIsNyAr
MjY1Miw3IEBAIHZvaWQgRG9XaGlsZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiAKIHZvaWQgV2hpbGVOb2RlOjplbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewot
ICAgIExhYmVsU2NvcGVQdHIgc2NvcGUgPSBnZW5lcmF0b3IubmV3TGFiZWxTY29wZShMYWJlbFNj
b3BlOjpMb29wKTsKKyAgICBSZWY8TGFiZWxTY29wZT4gc2NvcGUgPSBnZW5lcmF0b3IubmV3TGFi
ZWxTY29wZShMYWJlbFNjb3BlOjpMb29wKTsKICAgICBSZWY8TGFiZWw+IHRvcE9mTG9vcCA9IGdl
bmVyYXRvci5uZXdMYWJlbCgpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlSW5Db25kaXRpb25D
b250ZXh0KG1fZXhwciwgdG9wT2ZMb29wLmdldCgpLCBzY29wZS0+YnJlYWtUYXJnZXQoKSwgRmFs
bFRocm91Z2hNZWFuc1RydWUpOwpAQCAtMjY3Niw3ICsyNjc2LDcgQEAgdm9pZCBXaGlsZU5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBk
c3QpCiAKIHZvaWQgRm9yTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5l
cmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKLSAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gZ2Vu
ZXJhdG9yLm5ld0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6TG9vcCk7CisgICAgUmVmPExhYmVsU2Nv
cGU+IHNjb3BlID0gZ2VuZXJhdG9yLm5ld0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6TG9vcCk7CiAK
ICAgICBSZWdpc3RlcklEKiBmb3JMb29wU3ltYm9sVGFibGUgPSBudWxscHRyOwogICAgIGdlbmVy
YXRvci5wdXNoTGV4aWNhbFNjb3BlKHRoaXMsIEJ5dGVjb2RlR2VuZXJhdG9yOjpURFpDaGVja09w
dGltaXphdGlvbjo6T3B0aW1pemUsIEJ5dGVjb2RlR2VuZXJhdG9yOjpOZXN0ZWRTY29wZVR5cGU6
OklzTmVzdGVkLCAmZm9yTG9vcFN5bWJvbFRhYmxlKTsKQEAgLTI4NTEsNyArMjg1MSw3IEBAIHZv
aWQgRm9ySW5Ob2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmVnaXN0ZXJJRCogZHN0KQogCiAgICAgLy8gSW5kZXhlZCBwcm9wZXJ0eSBsb29wLgogICAgIHsK
LSAgICAgICAgTGFiZWxTY29wZVB0ciBzY29wZSA9IGdlbmVyYXRvci5uZXdMYWJlbFNjb3BlKExh
YmVsU2NvcGU6Okxvb3ApOworICAgICAgICBSZWY8TGFiZWxTY29wZT4gc2NvcGUgPSBnZW5lcmF0
b3IubmV3TGFiZWxTY29wZShMYWJlbFNjb3BlOjpMb29wKTsKICAgICAgICAgUmVmPExhYmVsPiBs
b29wU3RhcnQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKICAgICAgICAgUmVmPExhYmVsPiBsb29w
RW5kID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CiAKQEAgLTI4OTEsNyArMjg5MSw3IEBAIHZvaWQg
Rm9ySW5Ob2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZXJJRCogZHN0KQogCiAgICAgLy8gU3RydWN0dXJlIHByb3BlcnR5IGxvb3AuCiAgICAgewot
ICAgICAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gZ2VuZXJhdG9yLm5ld0xhYmVsU2NvcGUoTGFi
ZWxTY29wZTo6TG9vcCk7CisgICAgICAgIFJlZjxMYWJlbFNjb3BlPiBzY29wZSA9IGdlbmVyYXRv
ci5uZXdMYWJlbFNjb3BlKExhYmVsU2NvcGU6Okxvb3ApOwogICAgICAgICBSZWY8TGFiZWw+IGxv
b3BTdGFydCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOwogICAgICAgICBSZWY8TGFiZWw+IGxvb3BF
bmQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKIApAQCAtMjkzMSw3ICsyOTMxLDcgQEAgdm9pZCBG
b3JJbk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiBkc3QpCiAKICAgICAvLyBHZW5lcmljIHByb3BlcnR5IGxvb3AuCiAgICAgewotICAg
ICAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gZ2VuZXJhdG9yLm5ld0xhYmVsU2NvcGUoTGFiZWxT
Y29wZTo6TG9vcCk7CisgICAgICAgIFJlZjxMYWJlbFNjb3BlPiBzY29wZSA9IGdlbmVyYXRvci5u
ZXdMYWJlbFNjb3BlKExhYmVsU2NvcGU6Okxvb3ApOwogICAgICAgICBSZWY8TGFiZWw+IGxvb3BT
dGFydCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOwogICAgICAgICBSZWY8TGFiZWw+IGxvb3BFbmQg
PSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKIApAQCAtMzA0NCw3ICszMDQ0LDcgQEAgTGFiZWwqIENv
bnRpbnVlTm9kZTo6dHJpdmlhbFRhcmdldChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQog
ICAgIGlmIChnZW5lcmF0b3Iuc2hvdWxkRW1pdERlYnVnSG9va3MoKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gZ2VuZXJhdG9yLmNvbnRpbnVl
VGFyZ2V0KG1faWRlbnQpOworICAgIFJlZlB0cjxMYWJlbFNjb3BlPiBzY29wZSA9IGdlbmVyYXRv
ci5jb250aW51ZVRhcmdldChtX2lkZW50KTsKICAgICBBU1NFUlQoc2NvcGUpOwogCiAgICAgaWYg
KGdlbmVyYXRvci5sYWJlbFNjb3BlRGVwdGgoKSAhPSBzY29wZS0+c2NvcGVEZXB0aCgpKQpAQCAt
MzA1NSw3ICszMDU1LDcgQEAgTGFiZWwqIENvbnRpbnVlTm9kZTo6dHJpdmlhbFRhcmdldChCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQogCiB2b2lkIENvbnRpbnVlTm9kZTo6ZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqKQogewotICAgIExh
YmVsU2NvcGVQdHIgc2NvcGUgPSBnZW5lcmF0b3IuY29udGludWVUYXJnZXQobV9pZGVudCk7Cisg
ICAgUmVmUHRyPExhYmVsU2NvcGU+IHNjb3BlID0gZ2VuZXJhdG9yLmNvbnRpbnVlVGFyZ2V0KG1f
aWRlbnQpOwogICAgIEFTU0VSVChzY29wZSk7CiAKICAgICBib29sIGhhc0ZpbmFsbHkgPSBnZW5l
cmF0b3IuZW1pdEp1bXBWaWFGaW5hbGx5SWZOZWVkZWQoc2NvcGUtPnNjb3BlRGVwdGgoKSwgKnNj
b3BlLT5jb250aW51ZVRhcmdldCgpKTsKQEAgLTMwNzUsNyArMzA3NSw3IEBAIExhYmVsKiBCcmVh
a05vZGU6OnRyaXZpYWxUYXJnZXQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikKICAgICBp
ZiAoZ2VuZXJhdG9yLnNob3VsZEVtaXREZWJ1Z0hvb2tzKCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgTGFiZWxTY29wZVB0ciBzY29wZSA9IGdlbmVyYXRvci5icmVha1RhcmdldCht
X2lkZW50KTsKKyAgICBSZWZQdHI8TGFiZWxTY29wZT4gc2NvcGUgPSBnZW5lcmF0b3IuYnJlYWtU
YXJnZXQobV9pZGVudCk7CiAgICAgQVNTRVJUKHNjb3BlKTsKIAogICAgIGlmIChnZW5lcmF0b3Iu
bGFiZWxTY29wZURlcHRoKCkgIT0gc2NvcGUtPnNjb3BlRGVwdGgoKSkKQEAgLTMwODYsNyArMzA4
Niw3IEBAIExhYmVsKiBCcmVha05vZGU6OnRyaXZpYWxUYXJnZXQoQnl0ZWNvZGVHZW5lcmF0b3Im
IGdlbmVyYXRvcikKIAogdm9pZCBCcmVha05vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikKIHsKLSAgICBMYWJlbFNjb3BlUHRyIHNjb3Bl
ID0gZ2VuZXJhdG9yLmJyZWFrVGFyZ2V0KG1faWRlbnQpOworICAgIFJlZlB0cjxMYWJlbFNjb3Bl
PiBzY29wZSA9IGdlbmVyYXRvci5icmVha1RhcmdldChtX2lkZW50KTsKICAgICBBU1NFUlQoc2Nv
cGUpOwogCiAgICAgYm9vbCBoYXNGaW5hbGx5ID0gZ2VuZXJhdG9yLmVtaXRKdW1wVmlhRmluYWxs
eUlmTmVlZGVkKHNjb3BlLT5zY29wZURlcHRoKCksIHNjb3BlLT5icmVha1RhcmdldCgpKTsKQEAg
LTMzMDAsNyArMzMwMCw3IEBAIHZvaWQgQ2FzZUJsb2NrTm9kZTo6ZW1pdEJ5dGVjb2RlRm9yQmxv
Y2soQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJCiAKIHZvaWQgU3dpdGNo
Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVy
SUQqIGRzdCkKIHsKLSAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gZ2VuZXJhdG9yLm5ld0xhYmVs
U2NvcGUoTGFiZWxTY29wZTo6U3dpdGNoKTsKKyAgICBSZWY8TGFiZWxTY29wZT4gc2NvcGUgPSBn
ZW5lcmF0b3IubmV3TGFiZWxTY29wZShMYWJlbFNjb3BlOjpTd2l0Y2gpOwogCiAgICAgUmVmUHRy
PFJlZ2lzdGVySUQ+IHIwID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwcik7CiAKQEAgLTMzMTgs
NyArMzMxOCw3IEBAIHZvaWQgTGFiZWxOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIEFTU0VSVCghZ2VuZXJhdG9y
LmJyZWFrVGFyZ2V0KG1fbmFtZSkpOwogCi0gICAgTGFiZWxTY29wZVB0ciBzY29wZSA9IGdlbmVy
YXRvci5uZXdMYWJlbFNjb3BlKExhYmVsU2NvcGU6Ok5hbWVkTGFiZWwsICZtX25hbWUpOworICAg
IFJlZjxMYWJlbFNjb3BlPiBzY29wZSA9IGdlbmVyYXRvci5uZXdMYWJlbFNjb3BlKExhYmVsU2Nv
cGU6Ok5hbWVkTGFiZWwsICZtX25hbWUpOwogICAgIGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBv
c2l0aW9uKGRzdCwgbV9zdGF0ZW1lbnQpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzY29w
ZS0+YnJlYWtUYXJnZXQoKSk7Cg==
</data>
<flag name="review"
          id="329799"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>