Editing Wifi

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
[[Category:Hardware]]
=Wireless Networking=
=Wireless Networking=
<div style="float:right">[[File:BT-Wifi-channels.png|200px|thumb|left|BlueTooth and Wifi channels]]</div>
<div style="float:right">[[File:BT-Wifi-channels.png|200px|thumb|left|BlueTooth and Wifi channels]]</div>


The PS3 contains two wireless technologies, Wi-Fi [http://en.wikipedia.org/wiki/IEEE_802.11g-2003 802.11b/g] and Bluetooth 2.0. It is not possible for both to be used at the same time, so the PS3 alternates between Wi-Fi and Bluetooth communication at a very fast frequency using time division multiplexing (note, see:[http://www.marvell.com/wireless/assets/Marvell-WiFi-Bluetooth-Coexistence.pdf Marvell-WiFi-Bluetooth-Coexistence.pdf]).
The PS3 contains two wireless technologies, Wi-Fi 802.11b/g and Bluetooth 2.0. It is not possible for both to be used at the same time, so the PS3 alternates between Wi-Fi and Bluetooth communication at a very fast frequency using time division multiplexing (note, see:[http://www.marvell.com/wireless/assets/Marvell-WiFi-Bluetooth-Coexistence.pdf Marvell-WiFi-Bluetooth-Coexistence.pdf]). Both wireless capabilities are powered by the Marvell 88W8580 chip. In [[SKU Models]] CECHL and later, this wireless module updated with Marvell 88W8780 and became part of the motherboard (no longer on a separate daughterboard).
Both wireless capabilities are powered by the Marvell 88W8580 chip, used on both daughterboards CWI-001 (CECHA, CECHB, CECHC) and UWB-001 (CECHH, CECHJ, CECHK). In [[SKU Models]] CECHL and later, this wireless module updated with Marvell 88W8780 and became part of the motherboard (no longer on a separate daughterboard).




Line 16: Line 16:
! Type !! Size !! Speed !! Voltage !! Packaging !! Manufacturer !! Serialnumber !! Description
! Type !! Size !! Speed !! Voltage !! Packaging !! Manufacturer !! Serialnumber !! Description
|-
|-
| ARMv5TE-compliant || ?8kbit EEPROM? || 50MHz || ?3.3V? || 256-ball BGA || Marvell || [[88W8580]]-BAN1 || PS3 Fats Wi-Fi controller chip
| ARMv5TE-compliant || ?8kbit EEPROM? || 50MHz || ?3.3V? || 256-ball BGA || Marvell || 88W8580-BAN1 || PS3 Fat Wi-Fi controller chip
|-
|-
| ARMv5TE-compliant || ?8kbit EEPROM? || ?50MHz? || ?3.3V? || ?256-ball BGA? || Marvell || [[88W8780]]-BIE2 || First PS3 Slims Wi-Fi controller chip
| ARMv5TE-compliant || ?8kbit EEPROM? || ?50MHz? || ?3.3V? || ?256-ball BGA? || Marvell || 88W8780-BIE2 || PS3 Slim Wi-Fi controller chip
|-
| ARMv5TE-compliant || ?8kbit EEPROM? || ?50MHz? || ?3.3V? || ?256-ball BGA? || Marvell || [[88W8781]] || Last PS3 Slims and firt Superslims Wi-Fi controller chip
|-
|-
| NOR Flash || 64KB || 85MHz || 3V || 8-pin || Macronix || MX25L512MC-12G || PS3 Fat Wi-Fi firmware chip
| NOR Flash || 64KB || 85MHz || 3V || 8-pin || Macronix || MX25L512MC-12G || PS3 Fat Wi-Fi firmware chip
Line 33: Line 31:




=== Seperated Wifi/BT boards on PS3 Fat ===
=== Seperate Wifi/BT boards on PS3 Fat ===
 
part no. 1-871-870-21, CWI-001 (CECHA, CECHB, CECHC)
==== CWI-001 Prototypes ====
<table width="100%" align="left"><tr>
===== CWIC-03 =====
<td align="left">[[File:CWI-001-1-871-870-21-top.png|200px|thumb|left|Wifi/Bluetooth board (CWI-001 / 1-871-870-21) CECHA, CECHB, CECHC - TOP]]<br />[[File:CWI-001-1-871-870-21-bottom.png|200px|thumb|left|Wifi/Bluetooth board (CWI-001 / 1-871-870-21) CECHA, CECHB, CECHC - BOTTOM]]<br /></td>
<gallery>
File:CWIC-03 TOP.jpg|CWIC-03 - top
File:CWIC-03 BOTTOM.jpg|CWIC-03 - bottom
</gallery>
 
===== CWI-001 =====
part no. 0-366-794-01, CWI-001
<gallery>
File:CWI-001 0-366-794-01 TOP.jpg|CWI-001 - top
File:CWI-001 0-366-794-01 BOTTOM.jpg|CWI-001 - bottom
</gallery>


===== WI-13B =====
WI-13B
<gallery>
File:COKIE-13-37.jpg|COOKIE-13 ([[CWI-001]] [[WI-13B]]_B)
File:COKIE-13-36.jpg|COOKIE-13 ([[WI-13B]]_A)
</gallery>


===== WI-13C =====
<td align="left">[[File:Ps3wifi.png|200px|thumb|left|PS3 Wifi subboard with Marvell 88W8580-BAN1 controller, Marvell 88W8010-NNB1 driver, Macronix MX25L512MC-12G flash, ISSI IS42S32400B-6BL DRAM]]<br /></td>
WI-13C
<gallery>
File:WI-13C TOP.jpg|WI-13C - top
File:WI-13C BOTTOM.jpg|WI-13C - bottom
</gallery>


==== CWI-001 ====
<td align="left">[[File:Marvell-88W8500-Blockschematic.png|200px|thumb|left|Marvell 88W8500 '''(not 88W8580)''' Blockschematic)]]</td></tr></table>
part no. 1-871-870-21, CWI-001 (CECHA, CECHB, CECHC)<br />
part no. 1-871-870-31, CWI-001 (CECHE)


<gallery>
==== Marvell 88W8580-BAN1 (Wifi/Bluetooth controller) ====
File:CWI-001-1-871-870-21-top.png|Wifi/Bluetooth board (CWI-001 / 1-871-870-21) CECHA, CECHB, CECHC - TOP
File:CWI-001-1-871-870-21-bottom.png|Wifi/Bluetooth board (CWI-001 / 1-871-870-21) CECHA, CECHB, CECHC - BOTTOM
File:Ps3wifi.png|PS3 Wifi subboard with Marvell 88W8580-BAN1 controller, Marvell 88W8010-NNB1 driver, Macronix MX25L512MC-12G flash, ISSI IS42S32400B-6BL DRAM
File:Wifi-subboard.png|PS3 Wifi subboard with Marvell 88W8580-BAN1 controller, Marvell 88W8010-NNB1 driver, Macronix MX25L512MC-12G flash, ISSI IS42S32400B-6BL DRAM
File:CWI-001-diagram.png|CWI-001/1-871-870-21 diagram
File:Marvell-88W8500-Blockschematic.png|Marvell 88W8500 '''(not 88W8580)''' Blockschematic)
File:CWI-001 1-871-870-21 A as found in CECHB.jpg|Wireless board - CWI-001 1-871-870-21 A as found in CECHB
</gallery>
 
===== Marvell 88W8580-BAN1 (Wifi/Bluetooth controller) =====


<div style="float:right">[[File:BGA256.PNG|200px|thumb|left|256-ball BGA<br />Marvell 88W8580-BAN1]]</div>
<div style="float:right">[[File:BGA256.PNG|200px|thumb|left|256-ball BGA<br />Marvell 88W8580-BAN1]]</div>
Line 124: Line 88:
|}
|}


===== Marvell 88W8010-NNB1 (Wifi driver) =====
==== Marvell 88W8010-NNB1 (Wifi driver) ====
 
<div style="float:right">[[File:88W8010-NNB1-wifisubboard.png|200px|thumb|left|Marvell 88W8010-NNB1 (Wifi driver) inside Wifi subboard]]</div>
<div style="float:right">[[File:88W8010-NNB1-wifisubboard.png|200px|thumb|left|Marvell 88W8010-NNB1 (Wifi driver) inside Wifi subboard]]</div>
 
<div style="height:225px; overflow:auto">
Package: QFN-48
 
<div style="height:245px; overflow:auto">
<!--// insert fancy table here //-->
<!--// insert fancy table here //-->
</div>
</div>


===== Macronix MX25L512MC-12G (Flash) =====
==== Macronix MX25L512MC-12G (Flash) ====


<div style="float:right">[[File:8pin-SOP.png|200px|thumb|left|8pin SOP<br />Macronix MX25L512MC-12G]]</div>
<div style="float:right">[[File:8pin-SOP.png|200px|thumb|left|8pin SOP<br />Macronix MX25L512MC-12G]]</div>
Line 162: Line 122:
|}
|}


===== ISSI IS42S32400B-6BL (DRAM) =====
==== ISSI IS42S32400B-6BL (DRAM) ====


<div style="float:right">[[File:90ball-FBGA-ISSI IS42S32400B-6BL.png|200px|thumb|left|90-ball FBGA<br />ISSI IS42S32400B-6BL]]</div>
<div style="float:right">[[File:90ball-FBGA-ISSI IS42S32400B-6BL.png|200px|thumb|left|90-ball FBGA<br />ISSI IS42S32400B-6BL]]</div>
Line 206: Line 166:
|}
|}


===== Nanya NT5SV8M16FS-6K (DRAM) =====
==== Nanya NT5SV8M16FS-6K (DRAM) ====


<div style="float:right">[[File:54pin-TSOP-II-Nanya NT5SV8M16FS-6K.png|200px|thumb|left|54-pin TSOP-II<br />Nanya NT5SV8M16FS-6K]]</div>
<div style="float:right">[[File:54pin-TSOP-II-Nanya NT5SV8M16FS-6K.png|200px|thumb|left|54-pin TSOP-II<br />Nanya NT5SV8M16FS-6K]]</div>
Line 247: Line 207:
|-
|-
|}
|}
:
<br />
<br />


==== CWI-002 ====
=== Integrated Wifi/BT boards on PS3 Slim ===
part no. 1-875-387-11, CWI-002 (CECHG)
<table width="100%" align="left"><tr><td align="left">[[File:Ps3Wifi-v2a.png|200px|thumb|left|PS3 Wifi subboard as seen integrated on the mobo of CECH-2001A<br />part.nr: 1-474-178-11 Rev. 1.0<br />SP88W8780-MA0<br />E200050406-0bL2]]</td><td align="left">[[File:Ps3Wifi-v2.png|200px|thumb|left|PS3 Wifi subboard with<br />Marvell 88W8780-BIE2, <br />Macronix MX25L4005AM2I-12G]]</td><td align="left">[[File:Marvell-88W8782-Blockschematic.png|200px|thumb|left|Marvell 88W8782 '''(not 88W8780)''' Blockschematic<br />Difference: dual 2.4+5GHz versus 2.4GHz single band]]</td></tr></table>
<table width="100%" align="left"><tr><td align="left">[[File:CWI-002_-_1-875-387-11_-TOP.jpg|200px|thumb|left|Wifi/Bluetooth board (CWI-002 / 1-875-387-11) CECHG - TOP]]</td><td>[[File:CWI-002_-_1-875-387-11_-BOTTOM.jpg|200px|thumb|left|Wifi/Bluetooth board (CWI-002 / 1-875-387-11) CECHG - BOTTOM]]</td><td>[[File:CWI-002_-_1-875-387-11_-SUBBOARD_-1-802-252-11-rev1.0.jpg|200px|thumb|left|Wifi/Bluetooth board (CWI-002 / 1-875-387-11) CECHG - SUBBOARD 1-802-252-11 rev1.0]]</td></tr></table>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
 
==== UWB-001 prototypes ====
 
===== USBT-02_N =====
USBT-02_N
<gallery>
File:USBT-02_N_TOP.jpg|USBT-02_N - top
File:USBT-02_N_BOTTOM.jpg|USBT-02_N - bottom
</gallery>
 
===== UWB-001 =====
part no. 0-857-607-01, UWB-001
<gallery>
File:UWB-001_0-857-607-01_TOP.jpg|UWB-001 - top
File:UWB-001_0-857-607-01_BOTTOM.jpg|UWB-001 - bottom
</gallery>
 
==== UWB-001 ====
part no. 1-875-939-21, UWB-001 (CECHH, CECHJ, CECHK)
<table width="100%" align="left"><tr><td align="left">[[File:UWB-001-top.jpg|200px|thumb|left|Wifi/Bluetooth USB board (UWB-001 / 1-875-939-21) CECHH, CECHJ, CECHK - TOP]]</td><td>[[File:UWB-001-bottom.jpg|200px|thumb|left|Wifi/Bluetooth USB board (UWB-001 / 1-875-939-21) CECHH, CECHJ, CECHK - BOTTOM]]</td></tr></table>
 
===== Marvell 88W8580-BAN1 (Wifi/Bluetooth controller) =====
[[Wifi#Marvell_88W8580-BAN1_.28Wifi.2FBluetooth_controller.29]]
 
===== Nanya NT5SV8M16FS-6K (DRAM) =====
[[Wifi#Nanya_NT5SV8M16FS-6K_.28DRAM.29]]
 
===== 1-802-252-21 Rev 2.0 driver =====
No pics from inside (yet), please add if possible.


===== Sony CXN1502-3AAL 752D34S (BT driver subboard on UWB-001) =====
[[Bluetooth#Sony_CXN1502-3AAL_752D34S_.28BT_driver_subboard_on_UWB-001.29]]
===== Genesys GL852 (USB Hub) =====
see [[USB]]
=== Integrated Wifi/BT boards on PS3 FAT ===
Seen on: [[CECHLxx]], [[CECHMxx]], [[CECHPxx]], [[CECHQxx]] (with [[VER-001]] motherboard)<br />
Circuit/design simulair to UWB-001, but implemented on the main L shaped board.
=== Integrated Wifi/BT boards on PS3 Slim ===
<Gallery>
File:Ps3Wifi-v2a.png|PS3 Wifi subboard as seen integrated on the mobo of CECH-2001A - part.nr: 1-474-178-11 Rev. 1.0 - SP88W8780-MA0 - E200050406-0bL2
File:Wifi-bt-subboard-on-slims.jpg|Wifi/BT subboard on slims
File:Ps3Wifi-v2.png|PS3 Wifi subboard with Marvell 88W8780-BIE2, Macronix MX25L4005AM2I-12G
File:Marvell-88W8782-Blockschematic.png|Marvell 88W8782 '''(not 88W8780)''' Blockschematic - Difference: dual 2.4+5GHz versus 2.4GHz single band
</Gallery>


==== Marvell 88W8780-BIE2 (Wifi/BT controller) ====
==== Marvell 88W8780-BIE2 (Wifi/BT controller) ====
Line 379: Line 288:
:
:


==== Marvell Avastar 88W8781 (Wifi/BT controller) ====
Used in [[CECH-25xx]] PS3 models with motherboards [[JTP-00x|JTP-001]], [[JSD-00x|JSD-001]]


https://www.bluetooth.org/tpg/RefNotes/RIN-W8781.pdf


<gallery>
[[Category:Software]]
File:SP88W8781.jpg|Marvell SP88W8781
 
File:Marvell SP88W8781 unshielded.jpg|Marvell SP88W8781<br />interference shield removed
==Software==
File:Marvell SP88W8781 BGA.jpg|Marvell SP88W8781<br />BGA pads
eCos is used to provide the Playstation's Wi-Fi support. eCos is an open source real-time operating system (RTOS). It is licensed under a modified version of GPL that allows the use of non GPL licensed code to be linked with eCos.
</gallery>
 
'''References:'''
http://www.ecoscentric.com/ecos/
http://ecos.sourceware.org/
 
 
=== GameOS firmware file ===
 
Filename: eurus_fw.bin<br />
Location: /dev_flash/sys/internal and inside CoreOS package
 
==== example from FW 2.40 ====


=== Integrated Wifi/BT boards on PS3 SuperSlim ===
Header:
<pre>
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F


==== Unknown wifi/BT module ====
00000000  01 00 00 00 00 00 F0 D0 B4 05 00 00 E5 63 86 B6  ......ðд...åc†¶
<gallery>
00000010  18 F0 9F E5 18 F0 9F E5 18 F0 9F E5 18 F0 9F E5  .ðŸå.ðŸå.ðŸå.ðŸå
File:KTE-001 wifi-BT module BGA 10x7.jpg|KTE-001 wifi-BT module BGA 10x7 array
00000020  18 F0 9F E5 00 00 A0 E1 18 F0 9F E5 18 F0 9F E5  .ðŸå.. á.ðŸå.ðŸå
File:KTE-001 wifitraces.jpg|KTE-001 wifi traces
00000030  58 00 F0 D0 40 00 F0 D0 44 00 F0 D0 48 00 F0 D0  X.ðÐ@.ðÐD.ðÐH.ðÐ
</gallery>
00000040  4C 00 F0 D0 00 00 00 00 50 00 F0 D0 54 00 F0 D0  L.ðÐ....P.ðÐT.ðÐ
00000050  FE FF FF EA FE FF FF EA FE FF FF EA FE FF FF EA  þÿÿêþÿÿêþÿÿêþÿÿê
</pre>


==== Marvell Avastar 88W8781-NXU2 ====
only readable part:
<gallery>
<pre>
File:Marvell Avastar 88W8781-NXU2 - as seen on CECH4002C MSX-001.jpg|Marvell Avastar 88W8781-NXU2<br />used in [[MSX-00x|MSX-001]] motherboards
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
</gallery>


==== UWCM3-01 ====
00001B90  00 00 00 00 60 01 00 00 49 6E 76 61 6C 69 64 20  ....`...Invalid
[[CECH-42xx]] series: UWCM3-01 subboard as visible in FCC filing for [https://apps.fcc.gov/oetcf/eas/reports/ViewExhibitReport.cfm?mode=Exhibits&RequestTimeout=500&calledFromFrame=Y&application_id=167024&fcc_id=AK8CBEH19C1 AK8CBEH19C1], e.g. motherboard [[PPX-00x|PPX-001]]/1-888-615-21
00001BA0  4F 70 65 72 61 74 69 6F 6E 00 00 00 02 00 00 08  Operation.......
00001BB0  44 69 76 69 64 65 20 42 79 20 5A 65 72 6F 00 00  Divide By Zero..
00001BC0  4F 76 65 72 66 6C 6F 77 00 00 00 00 55 6E 64 65  Overflow....Unde
00001BD0  72 66 6C 6F 77 00 00 00 49 6E 65 78 61 63 74 20  rflow...Inexact
00001BE0  52 65 73 75 6C 74 00 00 3A 20 48 65 61 70 20 6D  Result..: Heap m
00001BF0  65 6D 6F 72 79 20 63 6F 72 72 75 70 74 65 64 00  emory corrupted.
00001C00  55 6E 6B 6E 6F 77 6E 20 73 69 67 6E 61 6C 00 00  Unknown signal..
00001C10  78 47 00 00 1E FF 2F E1 78 47 00 00 10 40 2D E9  xG...ÿ/áxG...@-é
00001C20  E9 FE FF EB 04 00 80 E2 10 40 BD E8 1E FF 2F E1  éþÿë..€â.@½è.ÿ/á
00001C30  08 B5 00 AB 18 70 03 20 69 46 AB DF 01 B0 08 BC  .µ.«.p. iF«ß.°.¼
00001C40  18 47 00 00 00 C0 9F E5 1C FF 2F E1 21 14 F0 D0  .G...ÀŸå.ÿ/á!.ðÐ
00001C50  78 47 00 00 10 40 2D E9 EF FF FF EB 00 10 A0 E3  xG...@-éïÿÿë.. ã
00001C60  00 10 80 E5 10 40 BD E8 1E FF 2F E1 41 62 6E 6F  ..€å.@½è.ÿ/áAbno
00001C70  72 6D 61 6C 20 74 65 72 6D 69 6E 61 74 69 6F 6E  rmal termination
00001C80  00 00 00 41 72 69 74 68 6D 65 74 69 63 20 65 78  ...Arithmetic ex
00001C90  63 65 70 74 69 6F 6E 3A 20 00 49 6C 6C 65 67 61  ception: .Illega
00001CA0  6C 20 69 6E 73 74 72 75 63 74 69 6F 6E 00 00 00  l instruction...
00001CB0  00 49 6E 74 65 72 72 75 70 74 20 72 65 63 65 69  .Interrupt recei
00001CC0  76 65 64 00 00 00 00 00 49 6C 6C 65 67 61 6C 20  ved.....Illegal
00001CD0  A3 33 63 EF 01 00 00 00 70 1C F0 D0 B4 05 00 00  £3cï....p.ðд...
00001CE0  05 FC E6 C7 61 64 64 72 65 73 73 00 00 00 00 00  .üæÇaddress.....
00001CF0  00 00 00 54 65 72 6D 69 6E 61 74 69 6F 6E 20 72  ...Termination r
00001D00  65 71 75 65 73 74 00 00 00 00 53 74 61 63 6B 20  equest....Stack
00001D10  6F 76 65 72 66 6C 6F 77 00 00 00 00 00 00 00 00  overflow........
00001D20  00 52 65 64 69 72 65 63 74 3A 20 63 61 6E 27 74  .Redirect: can't
00001D30  20 6F 70 65 6E 3A 20 00 4F 75 74 20 6F 66 20 68  open: .Out of h
00001D40  65 61 70 20 6D 65 6D 6F 72 79 00 00 00 00 00 55  eap memory.....U
00001D50  73 65 72 2D 64 65 66 69 6E 65 64 20 73 69 67 6E  ser-defined sign
00001D60  61 6C 20 31 00 00 55 73 65 72 2D 64 65 66 69 6E  al 1..User-defin
00001D70  65 64 20 73 69 67 6E 61 6C 20 32 00 00 50 75 72  ed signal 2..Pur
00001D80  65 20 76 69 72 74 75 61 6C 20 66 6E 20 63 61 6C  e virtual fn cal
00001D90  6C 65 64 00 43 2B 2B 20 6C 69 62 72 61 72 79 20  led.C++ library
00001DA0  65 78 63 65 70 74 69 6F 6E 00 00 00 00 00 00 00  exception.......
</pre>


<gallery>
Tail:
File:UWCM 3-01 revision 1.0 - top.png|UWCM 3-01 revision 1.0 - top
<pre>
File:UWCM 3-01 revision 1.0 - bottom.png|UWCM 3-01 revision 1.0 - bottom
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
File:UWCM 3-01 revision 1.0 - top without shielding.png|UWCM 3-01 revision 1.0 - top without shielding
File:REX-001 wifi-BT module BGA 9x7.jpg|REX-001 wifi-BT module BGA 9x7 array
File:REX-001 wifitraces.jpg|REX-001 wifi traces
</gallery>


000709A0  3E CA D7 EA C7 4C 7A 6B A7 8F 5A E5 7B 91 BB F8  >Ê×êÇLzk§.Zå{‘»ø
000709B0  58 A7 4D AA E6 7C 72 D0 A4 8B C3 26 05 3F C7 EB  X§Mªæ|rФ‹Ã&.?Çë
000709C0  79 BB 09 DE 2E DC E0 A3 8B BC 4D 13 D7 FF 1B 00  y».Þ.Ü࣋¼M.×ÿ..
000709D0  60 40 00 D0 04 00 00 00 EC 47 9E 14 54 8A ED C0  `@.Ð....ìGž.TŠíÀ
000709E0  04 00 00 00 00 00 F0 D0 00 00 00 00 3C 1A ED 79  ......ðÐ....<.íy
</pre>


{{Motherboard Components}}<noinclude>[[Category:Main]]</noinclude>
===Other References===
*http://www.ps3devwiki.com/index.php?title=Hypervisor_Reverse_Engineering#Gelic_device_.28Network_Interface.29
*http://wiki.gitbrew.org/index.php/PS3:HvReverseEngineering#Gelic_Device
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)