<?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>73371</bug_id>
          
          <creation_ts>2011-11-29 15:46:02 -0800</creation_ts>
          <short_desc>Add a way to revert a variable to its previous value after leaving a scope.</short_desc>
          <delta_ts>2011-11-30 12:39:40 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>73035</blocked>
    
    <blocked>73479</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>511165</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 15:46:02 -0800</bug_when>
    <thetext>Add a way to revert a variable to its previous value after leaving a scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511169</commentid>
    <comment_count>1</comment_count>
      <attachid>117063</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 15:56:00 -0800</bug_when>
    <thetext>Created attachment 117063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511178</commentid>
    <comment_count>2</comment_count>
      <attachid>117063</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-29 16:06:10 -0800</bug_when>
    <thetext>Comment on attachment 117063
Patch

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

&gt; Source/JavaScriptCore/wtf/AutoRevert.h:39
&gt; +// shorter lifetime than its scoped_variable, to prevent invalid memory writes

scoped_variable =&gt; scopedVariable

&gt; Tools/TestWebKitAPI/Tests/WTF/AutoRevert.cpp:36
&gt; +        AutoRevert&lt;bool&gt; autoRevert(&amp;originallyFalse, true);

C++ isn&apos;t smart enough to imply the template value?  I thought it could figure it out from the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511185</commentid>
    <comment_count>3</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 16:16:13 -0800</bug_when>
    <thetext>I missed adding this to header file to non-xcode build systems. (I&apos;ll fix that before landing.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511187</commentid>
    <comment_count>4</comment_count>
      <attachid>117063</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-11-29 16:17:32 -0800</bug_when>
    <thetext>Comment on attachment 117063
Patch

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

&gt; Source/JavaScriptCore/wtf/AutoRevert.h:46
&gt; +    AutoRevert(T* scopedVariable, T newValue)

Is there a reason why scopedVariable isn&apos;t a reference?

&gt;&gt; Tools/TestWebKitAPI/Tests/WTF/AutoRevert.cpp:36
&gt;&gt; +        AutoRevert&lt;bool&gt; autoRevert(&amp;originallyFalse, true);
&gt; 
&gt; C++ isn&apos;t smart enough to imply the template value?  I thought it could figure it out from the constructor.

Nope, that&apos;s not how class templates work - C++ first parses the variable declaration and then the constructor arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511189</commentid>
    <comment_count>5</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 16:19:02 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 117063 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117063&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/AutoRevert.h:46
&gt; &gt; +    AutoRevert(T* scopedVariable, T newValue)
&gt; 
&gt; Is there a reason why scopedVariable isn&apos;t a reference?

I&apos;ll change that. It will still be stored internally in the calss as a pointer to allow for clearing it out when revertNow is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511201</commentid>
    <comment_count>6</comment_count>
      <attachid>117063</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-11-29 16:34:04 -0800</bug_when>
    <thetext>Comment on attachment 117063
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/wtf/AutoRevert.h:46
&gt;&gt;&gt; +    AutoRevert(T* scopedVariable, T newValue)
&gt;&gt; 
&gt;&gt; Is there a reason why scopedVariable isn&apos;t a reference?
&gt; 
&gt; I&apos;ll change that. It will still be stored internally in the calss as a pointer to allow for clearing it out when revertNow is called.

Great!

&gt; Source/JavaScriptCore/wtf/AutoRevert.h:64
&gt; +        *m_scopedVariable = m_originalValue;
&gt; +        m_scopedVariable = 0;

You could also assert that m_scopedVariable is not null here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511328</commentid>
    <comment_count>7</comment_count>
      <attachid>117105</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 20:26:59 -0800</bug_when>
    <thetext>Created attachment 117105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511332</commentid>
    <comment_count>8</comment_count>
      <attachid>117105</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 20:32:49 -0800</bug_when>
    <thetext>Comment on attachment 117105
Patch

Ok, speak up if anyone objects. This is slightly different from before. (Different names, removed a method, changed the variable from being a T* to a T&amp;.)

Since I&apos;ve received and incorporated (valuable) input from Adam, Alexey, Anders, and Dmitry Lomov, I think this bikeshed has been well painted :).

I&apos;ll cq+ it after it passes enough ews bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511368</commentid>
    <comment_count>9</comment_count>
      <attachid>117105</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-29 21:36:57 -0800</bug_when>
    <thetext>Comment on attachment 117105
Patch

Committed as http://trac.webkit.org/changeset/101446.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512014</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-30 12:36:39 -0800</bug_when>
    <thetext>I think TemporaryChange would be a good name; classes normally want nouns as their names, not verbs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512017</commentid>
    <comment_count>11</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-30 12:37:39 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; I think TemporaryChange would be a good name; classes normally want nouns as their names, not verbs.

Makes sense. I&apos;ll do a follow up patch... :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117063</attachid>
            <date>2011-11-29 15:56:00 -0800</date>
            <delta_ts>2011-11-29 20:26:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73371-20111129155558.patch</filename>
            <type>text/plain</type>
            <size>18922</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NjNkOTM5NTkyODMzMzg5OTdiNDIxOTNkMDBlODQzNTM0NGE5NmZhLi4yMjZiMzRhMWNiNDc3Y2Mx
Mzk4YTdkNmNjNGY0YWY5YmYwZTM4OTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMiBAQAogMjAxMS0xMS0yOSAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+
CiAKKyAgICAgICAgQWRkIGEgd2F5IHRvIHJldmVydCBhIHZhcmlhYmxlIHRvIGl0cyBwcmV2aW91
cyB2YWx1ZSBhZnRlciBsZWF2aW5nIGEgc2NvcGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEluIGNhc2UgYW55b25lIGZyb20gQ2hyb21pdW0gc2VlcyB0
aGlzLiBJdCBpcyBuZWFybHkgaWRlbnRpY2FsIHRvIEF1dG9SZXNldAorICAgICAgICB3aXRoIHRo
ZSBhZGRpdGlvbiBvZiB0aGUgcmV2ZXJ0Tm93IG1ldGhvZCBidXQgaWYgdGhlIHNhbWUgbmFtZSB3
ZXJlIHVzZWQsCisgICAgICAgIGl0IGNhdXNlcyB1bm5lY2Vzc2FyeSBhbWJpZ3VpdHkuCisKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHd0Zi9BdXRvUmV2ZXJ0Lmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpBdXRvUmV2ZXJ0OjpB
dXRvUmV2ZXJ0KToKKyAgICAgICAgKFdURjo6QXV0b1JldmVydDo6fkF1dG9SZXZlcnQpOgorICAg
ICAgICAoV1RGOjpBdXRvUmV2ZXJ0OjpyZXZlcnROb3cpOgorCisyMDExLTExLTI5ICBEYXZpZCBM
ZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKwogICAgICAgICBIYXNoKiBpdGVyYXRvcnMgc2hv
dWxkIGFsbG93IGNvbXBhcmlzb24gYmV0d2VlbiBjb25zdCBhbmQgY29uc3QgdmVyc2lvbnMuCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM3MAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFT
Y3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCBiMzNhNjYyM2MwYTQwMjBjNjQxYWE5MGRmOWU2ZWIx
YTZmNDExZmQwLi5iZjAxM2JhOTZhNGJmYzdlN2MxZThjZmIxODA1YzVkNWQxNjdkNjBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0xMS0yOSAgRGF2aWQg
TGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGEgd2F5IHRvIHJldmVy
dCBhIHZhcmlhYmxlIHRvIGl0cyBwcmV2aW91cyB2YWx1ZSBhZnRlciBsZWF2aW5nIGEgc2NvcGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM3MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRm9yd2Fy
ZGluZ0hlYWRlcnMvd3RmL0F1dG9SZXZlcnQuaDogQWRkZWQuCisKIDIwMTEtMTEtMTEgIE1hcmsg
SGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQganNDYXN0
IHRvIHJlcGxhY2Ugc3RhdGljX2Nhc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhN2MyM2QzM2QxNTgxZjQwMmUx
MTA2MTIyOThhZDhjYzZlMDY5MDI3Li5hMDUxNDkyMzBkZDcxNWM4ZjBhYmUyMGM1ODUwYmRlMTUw
OGZhMDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTEtMjkgIERhdmlkIExl
dmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBhIHdheSB0byByZXZlcnQg
YSB2YXJpYWJsZSB0byBpdHMgcHJldmlvdXMgdmFsdWUgYWZ0ZXIgbGVhdmluZyBhIHNjb3BlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIChPT1BTISkKKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BdXRvUmV2ZXJ0
Lmg6IEFkZGVkLgorCiAyMDExLTExLTI5ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2ZXJ0IHRoYXQgbGFzdCBjaGFuZ2UsIGFwcGFyZW50bHkgaXQgZGVzdHJv
eXMgZXZlcnl0aGluZyBpbiB0aGUgd29ybGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTk4NTE3YTM3
OGYzNzEyYTUzMTYyZmE5OTE2YmM3YWJiZDg0NzAxMy4uYjliNDM0NTFkYmNjYjBhZGRhZDIyZmU3
Y2E5YzYyZWExNGM2YTk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEx
LTExLTI5ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQg
YSB3YXkgdG8gcmV2ZXJ0IGEgdmFyaWFibGUgdG8gaXRzIHByZXZpb3VzIHZhbHVlIGFmdGVyIGxl
YXZpbmcgYSBzY29wZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTczMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvQXV0b1JldmVydC5oOiBBZGRlZC4KKwogMjAx
MS0xMS0yOSAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICA8c3R5bGUgc2NvcGVkPjogYWRkIEVOQUJMRShTVFlMRV9TQ09QRUQpIGZsYWcgdG8g
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJmZDk5NTc5YTRhNTQyMmIx
MmY5Y2IzYzhhYTU3NzMxMDQyYWQ5NjYuLjBlMjBhOWM0Y2ViYTM3YjRkODk0MDVlMjkxMjI5Mzg0
NGYxMTk3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00Niw2ICs0Niw3IEBA
CiAJCTBCMzMwQzI3MEYzOEM2MjMwMDY5MkRFMyAvKiBUeXBlVHJhaXRzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBCMzMwQzI2MEYzOEM2MjMwMDY5
MkRFMyAvKiBUeXBlVHJhaXRzLmNwcCAqLzsgfTsKIAkJMEI0RDdFNjMwRjMxOUFDODAwQUQ3RTU4
IC8qIFR5cGVUcmFpdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBCNEQ3RTYyMEYzMTlBQzgwMEFEN0U1OCAvKiBUeXBlVHJhaXRzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEJBQzk0QTAxMzM4NzI4
NDAwQ0YxMzVCIC8qIFRocmVhZFJlc3RyaWN0aW9uVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBCQUM5NDlFMTMzODcyODQwMENGMTM1QiAv
KiBUaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEJDRDgzNTcxNDg1ODQ1MjAwRUEyMDAzIC8qIEF1dG9S
ZXZlcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBC
Q0Q4MzU0MTQ4NTg0MTIwMEVBMjAwMyAvKiBBdXRvUmV2ZXJ0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEJERkZBRTEwRkM2MTkzMTAwRDY5RUY0
IC8qIE93bkZhc3RNYWxsb2NQdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBCREZGQUQxMEZDNjE2RUMwMEQ2OUVGNCAvKiBPd25GYXN0TWFsbG9jUHRy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEJG
MjhBMjkxMUEzM0RDMzAwNjM4Rjg0IC8qIFNpemVMaW1pdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEJGMjhBMjgxMUEzM0RDMzAwNjM4Rjg0IC8q
IFNpemVMaW1pdHMuY3BwICovOyB9OwogCQkwRjE2RDcyNjE0MkMzOUMwMDBDRjc4NEEgLyogQml0
VmVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMTZENzI0MTQyQzM5QTIwMENGNzg0QSAvKiBCaXRWZWN0b3IuY3BwICovOyB9OwpAQCAtODIy
LDYgKzgyMyw3IEBACiAJCTBCMzMwQzI2MEYzOEM2MjMwMDY5MkRFMyAvKiBUeXBlVHJhaXRzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVUcmFpdHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQjREN0U2MjBGMzE5QUM4MDBBRDdFNTggLyog
VHlwZVRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlVHJhaXRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBCQUM5NDlFMTMzODcyODQwMENGMTM1
QiAvKiBUaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRocmVhZFJlc3RyaWN0aW9uVmVyaWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMEJDRDgzNTQxNDg1ODQxMjAwRUEyMDAzIC8qIEF1dG9SZXZlcnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0b1JldmVydC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwQkRGRkFEMTBGQzYxNkVDMDBENjlFRjQgLyogT3duRmFzdE1hbGxv
Y1B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPd25GYXN0TWFsbG9jUHRy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBCRjI4QTI4MTFBMzNEQzMwMDYzOEY4
NCAvKiBTaXplTGltaXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNpemVMaW1pdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE2RDcyNDE0
MkMzOUEyMDBDRjc4NEEgLyogQml0VmVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEJpdFZlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xOTAwLDYgKzE5MDIsNyBAQAogCQkJCTY1RTIxN0I4MDhFN0VFQ0MwMDIzRTVGNiAvKiBBc3Nl
cnRpb25zLmNwcCAqLywKIAkJCQk2NUUyMTdCNzA4RTdFRUNDMDAyM0U1RjYgLyogQXNzZXJ0aW9u
cy5oICovLAogCQkJCUJDNUY3QkJCMTE4MjNCNTkwMDUyQzAyQyAvKiBBdG9taWNzLmggKi8sCisJ
CQkJMEJDRDgzNTQxNDg1ODQxMjAwRUEyMDAzIC8qIEF1dG9SZXZlcnQuaCAqLywKIAkJCQlFMUE1
OTYzNzBERTNFMUMzMDBDMTdFMzcgLyogQVZMVHJlZS5oICovLAogCQkJCUREMzc3Q0JCMTIwNzJD
MTgwMDZBMjUxNyAvKiBCaXRtYXAuaCAqLywKIAkJCQkwRjE2RDcyNDE0MkMzOUEyMDBDRjc4NEEg
LyogQml0VmVjdG9yLmNwcCAqLywKQEAgLTI1OTMsNiArMjU5Niw3IEBACiAJCQkJODY4QkZBMDkx
MTdDRUZEMTAwQjkwOEIxIC8qIEF0b21pY1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZG
Mzg4NTkxMjExMzBDQTAwN0E3Q0UzIC8qIEF0b21pY1N0cmluZ0hhc2guaCBpbiBIZWFkZXJzICov
LAogCQkJCTg2OEJGQTBBMTE3Q0VGRDEwMEI5MDhCMSAvKiBBdG9taWNTdHJpbmdJbXBsLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwQkNEODM1NzE0ODU4NDUyMDBFQTIwMDMgLyogQXV0b1JldmVydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRUIwRTE2RjVDRDAwQjM0NDYwIC8qIEFWTFRyZWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0N0I4M0FDMEU2REI4QzkwMDQ3NzVBNCAvKiBCYXRjaGVk
VHJhbnNpdGlvbk9wdGltaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQzNzdDQkMxMjA3MkMx
ODAwNkEyNTE3IC8qIEJpdG1hcC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0F1dG9SZXZlcnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvQXV0b1JldmVydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhYTA2YWI0N2M1MmYyYThhYTRkN2RkYWZkNDhk
ZTkzN2ZmYjRiZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L0F1dG9SZXZlcnQuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBdXRvUmV2ZXJ0
X2gKKyNkZWZpbmUgQXV0b1JldmVydF9oCisKKyNpbmNsdWRlICJOb25jb3B5YWJsZS5oIgorCitu
YW1lc3BhY2UgV1RGIHsKKworLy8gQXV0b1JldmVydDw+IGlzIHVzZWZ1bCBmb3Igc2V0dGluZyBh
IHZhcmlhYmxlIHRvIGEgbmV3IHZhbHVlIG9ubHkgd2l0aGluIGEKKy8vIHBhcnRpY3VsYXIgc2Nv
cGUuIEFuIEF1dG9SZXZlcnQ8PiBvYmplY3QgY2hhbmdlcyBhIHZhcmlhYmxlIHRvIGl0cyBvcmln
aW5hbAorLy8gdmFsdWUgdXBvbiBkZXN0cnVjdGlvbiwgbWFraW5nIGl0IGFuIGFsdGVybmF0aXZl
IHRvIHdyaXRpbmcgInZhciA9IGZhbHNlOyIKKy8vIG9yICJ2YXIgPSBvbGRWYWw7IiBhdCBhbGwg
b2YgYSBibG9jaydzIGV4aXQgcG9pbnRzLgorLy8KKy8vIFRoaXMgc2hvdWxkIGJlIG9idmlvdXMs
IGJ1dCBub3RlIHRoYXQgYW4gQXV0b1JldmVydDw+IGluc3RhbmNlIHNob3VsZCBoYXZlIGEKKy8v
IHNob3J0ZXIgbGlmZXRpbWUgdGhhbiBpdHMgc2NvcGVkX3ZhcmlhYmxlLCB0byBwcmV2ZW50IGlu
dmFsaWQgbWVtb3J5IHdyaXRlcworLy8gd2hlbiB0aGUgQXV0b1JldmVydDw+IG9iamVjdCBpcyBk
ZXN0cm95ZWQuCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBBdXRvUmV2ZXJ0IHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdXRvUmV2ZXJ0KTsKK3B1YmxpYzoKKyAgICBBdXRvUmV2
ZXJ0KFQqIHNjb3BlZFZhcmlhYmxlLCBUIG5ld1ZhbHVlKQorICAgICAgICA6IG1fc2NvcGVkVmFy
aWFibGUoc2NvcGVkVmFyaWFibGUpCisgICAgICAgICwgbV9vcmlnaW5hbFZhbHVlKCpzY29wZWRW
YXJpYWJsZSkKKyAgICB7CisgICAgICAgICptX3Njb3BlZFZhcmlhYmxlID0gbmV3VmFsdWU7Cisg
ICAgfQorCisgICAgfkF1dG9SZXZlcnQoKQorICAgIHsKKyAgICAgICAgaWYgKG1fc2NvcGVkVmFy
aWFibGUpCisgICAgICAgICAgICByZXZlcnROb3coKTsKKyAgICB9CisKKyAgICAvLyBSZXZlcnRz
IHRoZSB2YWx1ZSBhdCB0aGlzIHBvaW50IGFuZCBkb2Vzbid0IGRvIHNvIHdoZW4gdGhlIGRlc3Ry
dWN0b3IgcnVucy4KKyAgICAvLyBUaGlzIG1heSBvbmx5IGJlIGNhbGxlZCBvbmNlLgorICAgIHZv
aWQgcmV2ZXJ0Tm93KCkKKyAgICB7CisgICAgICAgICptX3Njb3BlZFZhcmlhYmxlID0gbV9vcmln
aW5hbFZhbHVlOworICAgICAgICBtX3Njb3BlZFZhcmlhYmxlID0gMDsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgVCogbV9zY29wZWRWYXJpYWJsZTsKKyAgICBUIG1fb3JpZ2luYWxWYWx1ZTsKK307
CisKK30KKwordXNpbmcgV1RGOjpBdXRvUmV2ZXJ0OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvQXV0b1JldmVydC5oIGIv
U291cmNlL0phdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BdXRvUmV2ZXJ0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODZlYjgyZGVlOTAxMTYwZDg1OGYxNDU0ODQzNTYyYjY4ZmUwMjVhMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Gb3J3YXJkaW5nSGVhZGVycy93
dGYvQXV0b1JldmVydC5oCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9B
dXRvUmV2ZXJ0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy93dGYvQXV0b1JldmVydC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3Rm
L0F1dG9SZXZlcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjhiOWI2ZThhZGVmYWNlOTAyODJiNWYwODkyZjA1
MjI4YzQwNjBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvd3RmL0F1dG9SZXZlcnQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9G
V0RfQXV0b1JldmVydF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0F1dG9SZXZlcnRfaAorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0F1dG9SZXZlcnQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0F1dG9SZXZlcnQuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BdXRvUmV2ZXJ0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODZlYjgyZGVlOTAxMTYwZDg1OGYxNDU0ODQzNTYyYjY4ZmUwMjVhMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BdXRvUmV2ZXJ0
LmgKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0F1dG9SZXZlcnQuaD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjZGRh
ZjkwMjRjOTEzYWVjZDFlNzU4OTlkZjk1MjE3YTRhZWEwNGNiLi40MzljY2M2NzRhZjk4MWZlNmM3
MmE2YzVkNGFmZTVkNGEzMzA0YTUzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTEtMTEtMjkgIERhdmlkIExldmlu
ICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIEFkZCBhIHdheSB0byByZXZlcnQgYSB2
YXJpYWJsZSB0byBpdHMgcHJldmlvdXMgdmFsdWUgYWZ0ZXIgbGVhdmluZyBhIHNjb3BlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BdXRvUmV2ZXJ0Lmg6IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS5neXBpOiBBZGRlZCB0ZXN0IGZpbGUgdG8gdGhl
IGJ1aWxkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dpbi9UZXN0
V2ViS2l0QVBJLnZjcHJvajogRGl0dG8uCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQXV0b1JldmVydC5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
IEFkZGVkIGEgdGVzdCBmb3IgQXV0b1JldmVydC4KKworMjAxMS0xMS0yOSAgRGF2aWQgTGV2aW4g
IDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgSGFzaCogaXRlcmF0b3JzIHNob3VsZCBh
bGxvdyBjb21wYXJpc29uIGJldHdlZW4gY29uc3QgYW5kIGNvbnN0IHZlcnNpb25zLgogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNzAKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0F1dG9SZXZl
cnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9BdXRvUmV2
ZXJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODZlYjgyZGVlOTAxMTYwZDg1OGYxNDU0ODQzNTYyYjY4ZmUwMjVh
MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFk
ZXJzL3d0Zi9BdXRvUmV2ZXJ0LmgKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0F1dG9SZXZlcnQuaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS5neXBpIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLmd5cGkKaW5k
ZXggZDMxNTdlOTg4MzZkODVmZDQxZTExNTRiN2RiYjNmNDY1MjQ2Njk2Yi4uMzI5ZGRkZDk2MmY1
N2I3ZjVjZjI0ZDI4MDIwYjMwNWI5M2U0YmRiNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLmd5cGkKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLmd5cGkKQEAgLTMxLDYgKzMxLDcgQEAKIHsKICAgICAndmFyaWFibGVzJzogewogICAg
ICAgICAnVGVzdFdlYktpdEFQSV9maWxlcyc6IFsKKyAgICAgICAgICAgICdUZXN0cy9XVEYvQXV0
b1JldmVydC5jcHAnLAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRpY09w
ZXJhdGlvbnMuY3BwJywKICAgICAgICAgICAgICdUZXN0cy9XVEYvSGFzaE1hcC5jcHAnLAogICAg
ICAgICAgICAgJ1Rlc3RzL1dURi9SZWRCbGFja1RyZWUuY3BwJywKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNWE3ZWZlMjUxOWVkMmYzMTBlZWY5MTE2MDk0NDM4ZGY3Yzg1ZGU5YS4uYTg2MmY1
YmExOTg2NDYyMTlkZWIxZDFkNzE3NWY1YTE2YTQxMDQzZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTcsNiArNyw3IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQnVpbGRGaWxl
IHNlY3Rpb24gKi8KKwkJMEJDRDgzMzMxNDg1N0NEMDAwRUEyMDAzIC8qIEF1dG9SZXZlcnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEJDRDgzMzIx
NDg1N0NEMDAwRUEyMDAzIC8qIEF1dG9SZXZlcnQuY3BwICovOyB9OwogCQkwQkNEODMzNTE0ODU3
Q0U0MDBFQTIwMDMgLyogSGFzaE1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwQkNEODMzNDE0ODU3Q0U0MDBFQTIwMDMgLyogSGFzaE1hcC5jcHAg
Ki87IH07CiAJCTBGQzZDNENDMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFja1RyZWUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNkM0Q0IxNDEw
MjdFMDAwNUI3RjBDIC8qIFJlZEJsYWNrVHJlZS5jcHAgKi87IH07CiAJCTBGQzZDNENGMTQxMDM0
QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzZDNENFMTQxMDM0QUQwMDVCN0YwQyAvKiBNZXRhQWxs
b2NhdG9yLmNwcCAqLzsgfTsKQEAgLTE0Niw2ICsxNDcsNyBAQAogLyogRW5kIFBCWENvcHlGaWxl
c0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rp
b24gKi8KKwkJMEJDRDgzMzIxNDg1N0NEMDAwRUEyMDAzIC8qIEF1dG9SZXZlcnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQXV0b1JldmVydC5jcHA7IHBhdGggPSBX
VEYvQXV0b1JldmVydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBCQ0Q4MzM0
MTQ4NTdDRTQwMEVBMjAwMyAvKiBIYXNoTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEhhc2hNYXAuY3BwOyBwYXRoID0gV1RGL0hhc2hNYXAuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMgLyogUmVkQmxh
Y2tUcmVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlZEJsYWNr
VHJlZS5jcHA7IHBhdGggPSBXVEYvUmVkQmxhY2tUcmVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZDNkM0Q0UxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWV0YUFsbG9jYXRvci5jcHA7
IHBhdGggPSBXVEYvTWV0YUFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC00MTIsNiArNDE0LDcgQEAKIAkJQkM5MDk2NDYxMjU1NjE4OTAwMDgzNzU2IC8qIFdURiAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMEJDRDgzMzIx
NDg1N0NEMDAwRUEyMDAzIC8qIEF1dG9SZXZlcnQuY3BwICovLAogCQkJCUMwOTkxQzRGMTQzQzdE
NjgwMDc5OThGMiAvKiBjZiAqLywKIAkJCQkwRkM2QzRDRTE0MTAzNEFEMDA1QjdGMEMgLyogTWV0
YUFsbG9jYXRvci5jcHAgKi8sCiAJCQkJMEZDNkM0Q0IxNDEwMjdFMDAwNUI3RjBDIC8qIFJlZEJs
YWNrVHJlZS5jcHAgKi8sCkBAIC02NjMsNiArNjY2LDcgQEAKIAkJCQlCQzNDNEM3RjE0NTg3QUE2
MDAyNUZCNjIgLyogV0tCcm93c2luZ0NvbnRleHRHcm91cFRlc3QubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDMEM1RDNCRTE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzcyMkM4NjkxNDYxRTAzRTAwQzQ1RDAwIC8qIFJlbmRlcmVk
SW1hZ2VGcm9tRE9NUmFuZ2UubW0gaW4gU291cmNlcyAqLywKKwkJCQkwQkNEODMzMzE0ODU3Q0Qw
MDBFQTIwMDMgLyogQXV0b1JldmVydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwQkNEODMzNTE0
ODU3Q0U0MDBFQTIwMDMgLyogSGFzaE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0F1dG9SZXZlcnQuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQXV0b1JldmVydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE4MmIzZGM2NWVjMDU0
ZWY0ODJjZDJmYmFiNTA4NTA2ZTNlOTVhYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0F1dG9SZXZlcnQuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8d3RmL0F1dG9SZXZlcnQu
aD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdURiwgQXV0b1JldmVydE5l
c3RlZCkKK3sKKyAgICBib29sIG9yaWdpbmFsbHlGYWxzZSA9IGZhbHNlOworICAgIHsKKyAgICAg
ICAgQXV0b1JldmVydDxib29sPiBhdXRvUmV2ZXJ0KCZvcmlnaW5hbGx5RmFsc2UsIHRydWUpOwor
ICAgICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbGx5RmFsc2UpOworICAgICAgICB7CisgICAgICAg
ICAgICBBdXRvUmV2ZXJ0PGJvb2w+IGF1dG9SZXZlcnQoJm9yaWdpbmFsbHlGYWxzZSwgZmFsc2Up
OworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKG9yaWdpbmFsbHlGYWxzZSk7CisgICAgICAgIH0K
KyAgICAgICAgRVhQRUNUX1RSVUUob3JpZ2luYWxseUZhbHNlKTsKKyAgICB9CisgICAgRVhQRUNU
X0ZBTFNFKG9yaWdpbmFsbHlGYWxzZSk7Cit9CisKK1RFU1QoV1RGLCBBdXRvUmV2ZXJ0UmV2ZXJ0
Tm93KQoreworICAgIGJvb2wgb3JpZ2luYWxseUZhbHNlID0gZmFsc2U7CisgICAgeworICAgICAg
ICBBdXRvUmV2ZXJ0PGJvb2w+IGF1dG9SZXZlcnQoJm9yaWdpbmFsbHlGYWxzZSwgdHJ1ZSk7Cisg
ICAgICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsbHlGYWxzZSk7CisKKyAgICAgICAgLy8gVmVyaWZ5
IHRoYXQgdGhlIG9yaWdpbmFsIHZhbHVlIGlzIHJlc3RvcmVkLgorICAgICAgICBhdXRvUmV2ZXJ0
LnJldmVydE5vdygpOworICAgICAgICBFWFBFQ1RfRkFMU0Uob3JpZ2luYWxseUZhbHNlKTsKKyAg
ICAgICAgb3JpZ2luYWxseUZhbHNlID0gdHJ1ZTsKKyAgICB9CisgICAgLy8gVmVyaWZ5IHRoYXQg
dGhlIG9yaWdpbmFsIHZhbHVlIHdhc24ndCByZXN0b3JlZCB3aGVuIGxlYXZpbmcgdGhlIHNjb3Bl
CisgICAgLy8gc2luY2UgdGhlIHZhbHVlIHdhcyBhbHJlYWR5IHJlc3RvcmVkIGluIHRoZSBtaWRk
bGUgb2YgdGhlIHNjb3BlLgorICAgIEVYUEVDVF9UUlVFKG9yaWdpbmFsbHlGYWxzZSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4v
VGVzdFdlYktpdEFQSS52Y3Byb2oKaW5kZXggYTY4ZTNiMTM5NGQwYTBlZDUzNjFjOWRjZjhlYTlm
OGEyOWZjMjIzNy4uMDAzNGRkNWMzNmU0NmIzZjU5NTYxNGE2NGU3OTdiYzBkZmQzYWJlYiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKQEAgLTYzMiw2
ICs2MzIsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zp
bGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsdGVyPgogCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVGVzdHNcV1RGXEF1dG9SZXZlcnQuY3BwIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVGVzdHNcV1RG
XENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117105</attachid>
            <date>2011-11-29 20:26:59 -0800</date>
            <delta_ts>2011-11-29 21:36:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73371-20111129202658.patch</filename>
            <type>text/plain</type>
            <size>19415</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Yjc1MWU3MDZmMDNkODgwZDU5MDhmNDNlZDE3NjJiYjhjMDg5M2FhLi44ZDUwYTBkYWQ3MGExNTMy
ZmZlNmJlZTgyMGUzN2FjOWE4MzU1MmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMS0xMS0yOSAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgQWRkIGEgd2F5IHRvIHJldmVydCBhIHZhcmlhYmxlIHRvIGl0cyBwcmV2aW91
cyB2YWx1ZSBhZnRlciBsZWF2aW5nIGEgc2NvcGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCisKKyAgICAgICAgSW4gY2FzZSBhbnlvbmUgZnJvbSBDaHJvbWl1bSBzZWVzIHRoaXMs
IGl0IGlzIG5lYXJseSBpZGVudGljYWwgdG8gQXV0b1Jlc2V0CisgICAgICAgIGJ1dCBpZiB0aGUg
c2FtZSBuYW1lIHdlcmUgdXNlZCwgaXQgY2F1c2VzIHVubmVjZXNzYXJ5IGFtYmlndWl0eS4KKwor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd3RmL1RlbXBvcmFyaWx5Q2hhbmdlLmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpUZW1w
b3JhcmlseUNoYW5nZTo6VGVtcG9yYXJpbHlDaGFuZ2UpOgorICAgICAgICAoV1RGOjpUZW1wb3Jh
cmlseUNoYW5nZTo6flRlbXBvcmFyaWx5Q2hhbmdlKToKKwogMjAxMS0xMS0yOSAgT2xpdmVyIEh1
bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IFdlYkNvcmUgdG8gZGVzY3Jp
YmUgdHlwZWQgYXJyYXlzIHRvIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggYjMzYTY2
MjNjMGE0MDIwYzY0MWFhOTBkZjllNmViMWE2ZjQxMWZkMC4uYTUwYmFkMzFhOTQyY2FhNGU1NWRh
ODdjMTY1MTkyMzBjZjFiMDE1OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTEtMTEtMjkgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEFkZCBhIHdheSB0byByZXZlcnQgYSB2YXJpYWJsZSB0byBpdHMgcHJldmlvdXMgdmFs
dWUgYWZ0ZXIgbGVhdmluZyBhIHNjb3BlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzMzNzEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RlbXBvcmFyaWx5Q2hhbmdlLmg6
IEFkZGVkLgorCiAyMDExLTExLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIGpzQ2FzdCB0byByZXBsYWNlIHN0YXRpY19jYXN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZDZhZGQ5ZWM1MTEyZTZhNDhkZDUyZjQ4YmRlOWQzNjRhZmYwNTFkOC4uYTU2MDVm
MmUyYWEyYzYwNDUyZjFmYjgzMzY2MTQ0MTZlMWY2M2ExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDExLTExLTI5ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBBZGQgYSB3YXkgdG8gcmV2ZXJ0IGEgdmFyaWFibGUgdG8gaXRzIHByZXZpb3VzIHZh
bHVlIGFmdGVyIGxlYXZpbmcgYSBzY29wZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3d0Zi9UZW1wb3JhcmlseUNoYW5nZS5oOiBBZGRlZC4KKwogMjAxMS0xMS0yOSAg
T2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IFdlYkNvcmUg
dG8gZGVzY3JpYmUgdHlwZWQgYXJyYXlzIHRvIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDM2NmUy
MDc3OGE3MmU0MzM0YmE1ZjYyYTFjYWFkNGRmZWQ5NjlmMDUuLjdiOTdmOWM4YWMwNjQwY2UwNDU1
ZDYyZTFjYzkwZDY2OTFhZTk5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxMS0xMS0yOSAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
QWRkIGEgd2F5IHRvIHJldmVydCBhIHZhcmlhYmxlIHRvIGl0cyBwcmV2aW91cyB2YWx1ZSBhZnRl
ciBsZWF2aW5nIGEgc2NvcGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAg
ICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy93dGYvVGVtcG9yYXJpbHlDaGFuZ2UuaDogQWRkZWQu
CisKIDIwMTEtMTEtMTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBEcmFnQ2xpZW50OjpkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50IHNob3VsZCB1
c2Ugcm9vdCB2aWV3IGNvb3JkaW5hdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5neXBpCmluZGV4IDE1OWY2ODk3ZjA2ZWNjMjVhMzQ4NDYzZjRiMjE1Y2IwMzgzNWYyMjAu
LmZkNDI2NTUxZmNiZmQ5YWUwN2U1Y2I4YzQwYzRjM2ZhODFlYTRjNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC0yMDcsNiArMjA3LDcgQEAKICAgICAg
ICAgICAgICd3dGYvU3RkTGliRXh0cmFzLmgnLAogICAgICAgICAgICAgJ3d0Zi9TdHJpbmdFeHRy
YXMuaCcsCiAgICAgICAgICAgICAnd3RmL1N0cmluZ0hhc2hlci5oJywKKyAgICAgICAgICAgICd3
dGYvVGVtcG9yYXJpbHlDaGFuZ2UuaCcsCiAgICAgICAgICAgICAnd3RmL1RocmVhZFNhZmVSZWZD
b3VudGVkLmgnLAogICAgICAgICAgICAgJ3d0Zi9UaHJlYWRTcGVjaWZpYy5oJywKICAgICAgICAg
ICAgICd3dGYvVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2ogYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9q
CmluZGV4IGY2Y2YwMjAxNmU3NzM0NDExZDBjMTg1MjVmMWYxNDYzMzhhZmU3MTIuLmY2NjY4ZWRj
YzE1MDMyNzgwN2U2ODA4ZmI2MTE4MzU4NDZjOGE5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagpA
QCAtMTE1Myw2ICsxMTUzLDEwIEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0
aXZlUGF0aD0iLi5cLi5cd3RmXFRlbXBvcmFyaWx5Q2hhbmdlLmgiCisJCQk+CisJCTwvRmlsZT4K
KwkJPEZpbGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cd3RmXFRocmVhZGluZy5jcHAiCiAJCQk+
CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmZkOTk1NzlhNGE1
NDIyYjEyZjljYjNjOGFhNTc3MzEwNDJhZDk2Ni4uNzliNmJmNDQxMjI4YmY4Y2QxOTY0MTU0NmY2
MWViOTYxZTcwZTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ2LDYgKzQ2
LDcgQEAKIAkJMEIzMzBDMjcwRjM4QzYyMzAwNjkyREUzIC8qIFR5cGVUcmFpdHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEIzMzBDMjYwRjM4QzYy
MzAwNjkyREUzIC8qIFR5cGVUcmFpdHMuY3BwICovOyB9OwogCQkwQjREN0U2MzBGMzE5QUM4MDBB
RDdFNTggLyogVHlwZVRyYWl0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEI0RDdFNjIwRjMxOUFDODAwQUQ3RTU4IC8qIFR5cGVUcmFpdHMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwQkFDOTRBMDEz
Mzg3Mjg0MDBDRjEzNUIgLyogVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEJBQzk0OUUxMzM4NzI4NDAwQ0Yx
MzVCIC8qIFRocmVhZFJlc3RyaWN0aW9uVmVyaWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwQkNEODM1NzE0ODU4NDUyMDBFQTIwMDMgLyog
VGVtcG9yYXJpbHlDaGFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBCQ0Q4MzU0MTQ4NTg0MTIwMEVBMjAwMyAvKiBUZW1wb3JhcmlseUNoYW5nZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBCREZG
QUUxMEZDNjE5MzEwMEQ2OUVGNCAvKiBPd25GYXN0TWFsbG9jUHRyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQkRGRkFEMTBGQzYxNkVDMDBENjlFRjQg
LyogT3duRmFzdE1hbGxvY1B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBCRjI4QTI5MTFBMzNEQzMwMDYzOEY4NCAvKiBTaXplTGltaXRzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBCRjI4QTI4
MTFBMzNEQzMwMDYzOEY4NCAvKiBTaXplTGltaXRzLmNwcCAqLzsgfTsKIAkJMEYxNkQ3MjYxNDJD
MzlDMDAwQ0Y3ODRBIC8qIEJpdFZlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE2RDcyNDE0MkMzOUEyMDBDRjc4NEEgLyogQml0VmVjdG9y
LmNwcCAqLzsgfTsKQEAgLTgyMiw2ICs4MjMsNyBAQAogCQkwQjMzMEMyNjBGMzhDNjIzMDA2OTJE
RTMgLyogVHlwZVRyYWl0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUeXBlVHJhaXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEI0RDdFNjIw
RjMxOUFDODAwQUQ3RTU4IC8qIFR5cGVUcmFpdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVHlwZVRyYWl0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQkFD
OTQ5RTEzMzg3Mjg0MDBDRjEzNUIgLyogVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBCQ0Q4MzU0MTQ4NTg0MTIwMEVBMjAwMyAv
KiBUZW1wb3JhcmlseUNoYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
ZW1wb3JhcmlseUNoYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQkRGRkFE
MTBGQzYxNkVDMDBENjlFRjQgLyogT3duRmFzdE1hbGxvY1B0ci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBPd25GYXN0TWFsbG9jUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBCRjI4QTI4MTFBMzNEQzMwMDYzOEY4NCAvKiBTaXplTGltaXRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpemVMaW1pdHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE2RDcyNDE0MkMzOUEyMDBDRjc4NEEgLyogQml0VmVj
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJpdFZlY3Rvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDI2LDYgKzIwMjgsNyBAQAogCQkJ
CTY1NDFCRDZGMDhFODBBMTcwMDJDQkVFNyAvKiBUQ1NwaW5Mb2NrLmggKi8sCiAJCQkJNjU0MUJE
NzAwOEU4MEExNzAwMkNCRUU3IC8qIFRDU3lzdGVtQWxsb2MuY3BwICovLAogCQkJCTY1NDFCRDcx
MDhFODBBMTcwMDJDQkVFNyAvKiBUQ1N5c3RlbUFsbG9jLmggKi8sCisJCQkJMEJDRDgzNTQxNDg1
ODQxMjAwRUEyMDAzIC8qIFRlbXBvcmFyaWx5Q2hhbmdlLmggKi8sCiAJCQkJODY1NjU3M0UxMTVC
RTM1MjAwMjkxRjQwIC8qIHRleHQgKi8sCiAJCQkJMThCQUI1MjcxMERBREZDRDAwMEQ5NDVCIC8q
IFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwICovLAogCQkJCTE4QkFCNTI4MTBEQURG
Q0QwMDBEOTQ1QiAvKiBUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRzLmggKi8sCkBAIC0yODcy
LDYgKzI4NzUsNyBAQAogCQkJCUJDMThDNDZDMEUxNkY1Q0QwMEIzNDQ2MCAvKiBUQ1BhY2tlZENh
Y2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ2RDBFMTZGNUNEMDBCMzQ0NjAgLyogVENQ
YWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ2RjBFMTZGNUNEMDBCMzQ0NjAgLyog
VENTeXN0ZW1BbGxvYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEJDRDgzNTcxNDg1ODQ1MjAwRUEy
MDAzIC8qIFRlbXBvcmFyaWx5Q2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzFFREVBNjEx
NjlFMEQzMDA1RTQyNjIgLyogVGVybWluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNCRDMx
RUQxMjY3MzU3NzAwNjU0NjdGIC8qIFRleHRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MThCQUI1NTQxMERBRTA2NjAwMEQ5NDVCIC8qIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9U
ZW1wb3JhcmlseUNoYW5nZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UZW1wb3Jhcmls
eUNoYW5nZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZDMyYWQ3MWQzZmNiMDNiZWNiNjUzMDYyOTAzYzNjZTFi
YjhjNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RlbXBv
cmFyaWx5Q2hhbmdlLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGVtcG9yYXJp
bHlDaGFuZ2VfaAorI2RlZmluZSBUZW1wb3JhcmlseUNoYW5nZV9oCisKKyNpbmNsdWRlICJOb25j
b3B5YWJsZS5oIgorCituYW1lc3BhY2UgV1RGIHsKKworLy8gVGVtcG9yYXJpbHlDaGFuZ2U8PiBp
cyB1c2VmdWwgZm9yIHNldHRpbmcgYSB2YXJpYWJsZSB0byBhIG5ldyB2YWx1ZSBvbmx5IHdpdGhp
biBhCisvLyBwYXJ0aWN1bGFyIHNjb3BlLiBBbiBUZW1wb3JhcmlseUNoYW5nZTw+IG9iamVjdCBj
aGFuZ2VzIGEgdmFyaWFibGUgdG8gaXRzIG9yaWdpbmFsCisvLyB2YWx1ZSB1cG9uIGRlc3RydWN0
aW9uLCBtYWtpbmcgaXQgYW4gYWx0ZXJuYXRpdmUgdG8gd3JpdGluZyAidmFyID0gZmFsc2U7Igor
Ly8gb3IgInZhciA9IG9sZFZhbDsiIGF0IGFsbCBvZiBhIGJsb2NrJ3MgZXhpdCBwb2ludHMuCisv
LworLy8gVGhpcyBzaG91bGQgYmUgb2J2aW91cywgYnV0IG5vdGUgdGhhdCBhbiBUZW1wb3Jhcmls
eUNoYW5nZTw+IGluc3RhbmNlIHNob3VsZCBoYXZlIGEKKy8vIHNob3J0ZXIgbGlmZXRpbWUgdGhh
biBpdHMgc2NvcGVkVmFyaWFibGUsIHRvIHByZXZlbnQgaW52YWxpZCBtZW1vcnkgd3JpdGVzCisv
LyB3aGVuIHRoZSBUZW1wb3JhcmlseUNoYW5nZTw+IG9iamVjdCBpcyBkZXN0cm95ZWQuCisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBUZW1wb3JhcmlseUNoYW5nZSB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoVGVtcG9yYXJpbHlDaGFuZ2UpOworcHVibGljOgorICAgIFRlbXBvcmFy
aWx5Q2hhbmdlKFQmIHNjb3BlZFZhcmlhYmxlLCBUIG5ld1ZhbHVlKQorICAgICAgICA6IG1fc2Nv
cGVkVmFyaWFibGUoc2NvcGVkVmFyaWFibGUpCisgICAgICAgICwgbV9vcmlnaW5hbFZhbHVlKHNj
b3BlZFZhcmlhYmxlKQorICAgIHsKKyAgICAgICAgbV9zY29wZWRWYXJpYWJsZSA9IG5ld1ZhbHVl
OworICAgIH0KKworICAgIH5UZW1wb3JhcmlseUNoYW5nZSgpCisgICAgeworICAgICAgICBtX3Nj
b3BlZFZhcmlhYmxlID0gbV9vcmlnaW5hbFZhbHVlOworICAgIH0KKworCitwcml2YXRlOgorICAg
IFQmIG1fc2NvcGVkVmFyaWFibGU7CisgICAgVCBtX29yaWdpbmFsVmFsdWU7Cit9OworCit9CisK
K3VzaW5nIFdURjo6VGVtcG9yYXJpbHlDaGFuZ2U7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UZW1wb3JhcmlseUNoYW5n
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UZW1wb3Jh
cmlseUNoYW5nZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MDljZTVjMmYzNWJlMzM5NjY0MzNjMDQ3ZTI4Njk3
ZThmMTFjOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvRm9yd2Fy
ZGluZ0hlYWRlcnMvd3RmL1RlbXBvcmFyaWx5Q2hhbmdlLmgKQEAgLTAsMCArMSBAQAorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1RlbXBvcmFyaWx5Q2hhbmdlLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGVtcG9yYXJpbHlDaGFuZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UZW1wb3JhcmlseUNoYW5nZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEzNTM4NzQzNzZiZjc5NjhmNTg1OTg3OTMyMmVjNGU0M2M0ZWIzMWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGVtcG9y
YXJpbHlDaGFuZ2UuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfVGVtcG9y
YXJpbHlDaGFuZ2VfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9UZW1wb3JhcmlseUNoYW5nZV9oCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGVtcG9yYXJpbHlDaGFuZ2UuaD4KKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RlbXBvcmFy
aWx5Q2hhbmdlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9Gb3J3YXJkaW5nSGVhZGVycy93dGYvVGVt
cG9yYXJpbHlDaGFuZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTA5Y2U1YzJmMzViZTMzOTY2NDMzYzA0N2Uy
ODY5N2U4ZjExYzk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9tYWMvRm9yd2Fy
ZGluZ0hlYWRlcnMvd3RmL1RlbXBvcmFyaWx5Q2hhbmdlLmgKQEAgLTAsMCArMSBAQAorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1RlbXBvcmFyaWx5Q2hhbmdlLmg+CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWQzZTRhYmRjYjUyOTFiMjExZDli
NTExZGUwMGNjZThmMWIwYjkxMC4uMTJmY2UwYmY0ZDdkNWI4MTM2M2Y2YmIyY2U3ZWQwM2UwMGMx
OGZlOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDExLTExLTI5ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgYSB3YXkgdG8gcmV2ZXJ0IGEgdmFyaWFibGUgdG8gaXRzIHBy
ZXZpb3VzIHZhbHVlIGFmdGVyIGxlYXZpbmcgYSBzY29wZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJz
L3d0Zi9UZW1wb3JhcmlseUNoYW5nZS5oOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkuZ3lwaTogQWRkZWQgdGVzdCBmaWxlIHRvIHRoZSBidWlsZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajogRGl0dG8uCisgICAgICAgICogVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3By
b2o6IERpdHRvLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RlbXBvcmFyaWx5
Q2hhbmdlLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKTogQWRkZWQg
YSB0ZXN0IGZvciBUZW1wb3JhcmlseUNoYW5nZS4KKwogMjAxMS0xMS0yOSAgT2phbiBWYWZhaSAg
PG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIExpc3Qgb2YgYnVpbGRlcnMgaW4gdGhlIGZs
YWtpbmVzcyBkYXNoYm9hcmQgaXMgb3V0IG9mIGRhdGUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9UZW1wb3JhcmlseUNoYW5nZS5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL1RlbXBvcmFyaWx5Q2hhbmdl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTUwOWNlNWMyZjM1YmUzMzk2NjQzM2MwNDdlMjg2OTdlOGYxMWM5OAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0ZvcndhcmRpbmdIZWFkZXJz
L3d0Zi9UZW1wb3JhcmlseUNoYW5nZS5oCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9UZW1wb3JhcmlseUNoYW5nZS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLmd5cGkgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkuZ3lwaQppbmRleCA4NWFhMjljZmViOWEyYzA3ZTY2ZDFiNGQzNmU4OTE1M2ZlMjBmMWE3Li4z
NTU5NDQ4YjU1ODEyYzI0MjQxNGQ2NDNkMzkzNGEwNDhmZWUwMWJhIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQpAQCAtMzUsNiArMzUsNyBAQAogICAgICAgICAgICAgJ1Rl
c3RzL1dURi9SZWRCbGFja1RyZWUuY3BwJywKICAgICAgICAgICAgICdUZXN0cy9XVEYvU3RyaW5n
QnVpbGRlci5jcHAnLAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
JywKKyAgICAgICAgICAgICdUZXN0cy9XVEYvVGVtcG9yYXJpbHlDaGFuZ2UuY3BwJywKICAgICAg
ICAgICAgICdUZXN0cy9XVEYvVmVjdG9yQmFzaWMuY3BwJywKICAgICAgICAgICAgICdUZXN0cy9X
VEYvVmVjdG9yUmV2ZXJzZS5jcHAnLAogICAgICAgICBdLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAxZjRhYzU3OTA3OTE2M2VmOTY3ZWJhNjk3MmU1NzkwMjU3NjFjOGI5Li40MTkxNDIwODEw
MzUyYTBkZDc5YzM1YzZjMTA2MjM2M2MyZDJiZTYzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNyw2ICs3LDcgQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2Vj
dGlvbiAqLworCQkwQkNEODU2QTE0ODVDOThCMDBFQTIwMDMgLyogVGVtcG9yYXJpbHlDaGFuZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEJDRDg1
NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFRlbXBvcmFyaWx5Q2hhbmdlLmNwcCAqLzsgfTsKIAkJMEZD
NkM0Q0MxNDEwMjdFMDAwNUI3RjBDIC8qIFJlZEJsYWNrVHJlZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMg
LyogUmVkQmxhY2tUcmVlLmNwcCAqLzsgfTsKIAkJMEZDNkM0Q0YxNDEwMzRBRDAwNUI3RjBDIC8q
IE1ldGFBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZDNkM0Q0UxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwICov
OyB9OwogCQkxQTAyQzg0RjEyNUQ0QTg0MDBFM0Y0QkQgLyogRmluZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTAyQzg0RTEyNUQ0QTg0MDBFM0Y0
QkQgLyogRmluZC5jcHAgKi87IH07CkBAIC0xNDUsNiArMTQ2LDcgQEAKIC8qIEVuZCBQQlhDb3B5
RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBz
ZWN0aW9uICovCisJCTBCQ0Q4NTY5MTQ4NUM5OEIwMEVBMjAwMyAvKiBUZW1wb3JhcmlseUNoYW5n
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBUZW1wb3JhcmlseUNo
YW5nZS5jcHA7IHBhdGggPSBXVEYvVGVtcG9yYXJpbHlDaGFuZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMgLyogUmVkQmxhY2tUcmVl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlZEJsYWNrVHJlZS5j
cHA7IHBhdGggPSBXVEYvUmVkQmxhY2tUcmVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEZDNkM0Q0UxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWV0YUFsbG9jYXRvci5jcHA7IHBhdGgg
PSBXVEYvTWV0YUFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
MDJDODRCMTI1RDRBNUUwMEUzRjRCRCAvKiBmaW5kLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSBmaW5kLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTYsNiAr
NDE4LDcgQEAKIAkJCQlBN0E5NjZEQTE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFyaXRobWV0
aWNPcGVyYXRpb25zLmNwcCAqLywKIAkJCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3Ry
aW5nQnVpbGRlci5jcHAgKi8sCiAJCQkJQzAxMzYzQzcxM0MzOTk3MzAwRUYzOTY0IC8qIFN0cmlu
Z09wZXJhdG9ycy5jcHAgKi8sCisJCQkJMEJDRDg1NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFRlbXBv
cmFyaWx5Q2hhbmdlLmNwcCAqLywKIAkJCQlCQzkwOTY0QjEyNTU2MUJGMDAwODM3NTYgLyogVmVj
dG9yQmFzaWMuY3BwICovLAogCQkJCTM3MjAwQjkxMTNBMTYyMzAwMDdBNEZBRCAvKiBWZWN0b3JS
ZXZlcnNlLmNwcCAqLywKIAkJCSk7CkBAIC02NjAsNiArNjYzLDcgQEAKIAkJCQlCQzNDNEM3RjE0
NTg3QUE2MDAyNUZCNjIgLyogV0tCcm93c2luZ0NvbnRleHRHcm91cFRlc3QubW0gaW4gU291cmNl
cyAqLywKIAkJCQlDMEM1RDNCRTE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFj
dG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzcyMkM4NjkxNDYxRTAzRTAwQzQ1RDAwIC8qIFJl
bmRlcmVkSW1hZ2VGcm9tRE9NUmFuZ2UubW0gaW4gU291cmNlcyAqLywKKwkJCQkwQkNEODU2QTE0
ODVDOThCMDBFQTIwMDMgLyogVGVtcG9yYXJpbHlDaGFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UZW1wb3JhcmlseUNoYW5n
ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UZW1wb3JhcmlseUNoYW5nZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZThlZjViYWQyZWY1NmMwMzU2MjJhNTk5NDI2YWY0ZWRmODg4Y2ExNAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RlbXBvcmFy
aWx5Q2hhbmdlLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcmlseUNoYW5nZS5oPgorCituYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV1RGLCBUZW1wb3JhcmlseUNoYW5nZU5lc3RlZCkK
K3sKKyAgICBib29sIG9yaWdpbmFsbHlGYWxzZSA9IGZhbHNlOworICAgIHsKKyAgICAgICAgVGVt
cG9yYXJpbHlDaGFuZ2U8Ym9vbD4gY2hhbmdlMU9yaWdpbmFsbHlGYWxzZShvcmlnaW5hbGx5RmFs
c2UsIHRydWUpOworICAgICAgICBFWFBFQ1RfVFJVRShvcmlnaW5hbGx5RmFsc2UpOworICAgICAg
ICB7CisgICAgICAgICAgICBUZW1wb3JhcmlseUNoYW5nZTxib29sPiBjaGFuZ2UyT3JpZ2luYWxs
eUZhbHNlKG9yaWdpbmFsbHlGYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNF
KG9yaWdpbmFsbHlGYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX1RSVUUob3JpZ2lu
YWxseUZhbHNlKTsKKyAgICB9CisgICAgRVhQRUNUX0ZBTFNFKG9yaWdpbmFsbHlGYWxzZSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93
aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKaW5kZXggNTBlYzA4MGFiZmJlM2JjM2IwNjk5OTk5OWI1
NmYwZjcyM2Q3ODE1Ny4uOTM2ODkzYWE1NmZkMzBiMDIwYjQ4MzdkZjJkNzlmMzJmYTY4ZmJlZiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKQEAgLTY0
MCw2ICs2NDAsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFRlc3RzXFdURlxUZW1wb3JhcmlseUNoYW5nZS5jcHAiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXVEZcVmVj
dG9yQmFzaWMuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>