home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: LaTeX Document
(document/latex).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| LaTeX Document (document/latex)
| magic
| Supported |
90%
| dexvert
| Hypertext Markup Language File (text/html)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| HTML document text
| default (weak)
| |
99%
| file
| LaTeX document text
| default
| |
98%
| file
| exported SGML document text
| default
| |
97%
| file
| exported SGML document, ASCII text
| default
| |
80%
| TrID
| HyperText Markup Language with DOCTYPE
| default
| |
19%
| TrID
| HyperText Markup Language
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| gt2
| HTML (Hyper Text Markup Language) Datei
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| text/html
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3c 21 44 4f 43 54 59 50 | 45 20 48 54 4d 4c 20 50 |<!DOCTYP|E HTML P|
|00000010| 55 42 4c 49 43 20 22 2d | 2f 2f 57 33 43 2f 2f 44 |UBLIC "-|//W3C//D|
|00000020| 54 44 20 48 54 4d 4c 20 | 33 2e 32 20 46 69 6e 61 |TD HTML |3.2 Fina|
|00000030| 6c 2f 2f 65 6e 22 3e 0a | 0a 3c 21 2d 2d 43 6f 6e |l//en">.|.<!--Con|
|00000040| 76 65 72 74 65 64 20 77 | 69 74 68 20 4c 61 54 65 |verted w|ith LaTe|
|00000050| 58 32 48 54 4d 4c 20 32 | 30 32 32 20 28 52 65 6c |X2HTML 2|022 (Rel|
|00000060| 65 61 73 65 64 20 4a 61 | 6e 75 61 72 79 20 31 2c |eased Ja|nuary 1,|
|00000070| 20 32 30 32 32 29 20 2d | 2d 3e 0a 3c 48 54 4d 4c | 2022) -|->.<HTML|
|00000080| 20 6c 61 6e 67 3d 22 65 | 6e 22 3e 0a 3c 48 45 41 | lang="e|n">.<HEA|
|00000090| 44 3e 0a 3c 54 49 54 4c | 45 3e 43 6f 6e 74 65 6e |D>.<TITL|E>Conten|
|000000a0| 74 73 20 6f 66 20 50 65 | 72 66 6f 72 6d 61 6e 63 |ts of Pe|rformanc|
|000000b0| 65 20 6f 66 20 43 2d 69 | 66 69 65 64 20 63 6f 64 |e of C-i|fied cod|
|000000c0| 65 3c 2f 54 49 54 4c 45 | 3e 0a 0a 3c 4d 45 54 41 |e</TITLE|>..<META|
|000000d0| 20 48 54 54 50 2d 45 51 | 55 49 56 3d 22 43 6f 6e | HTTP-EQ|UIV="Con|
|000000e0| 74 65 6e 74 2d 54 79 70 | 65 22 20 43 4f 4e 54 45 |tent-Typ|e" CONTE|
|000000f0| 4e 54 3d 22 74 65 78 74 | 2f 68 74 6d 6c 3b 20 63 |NT="text|/html; c|
|00000100| 68 61 72 73 65 74 3d 75 | 74 66 2d 38 22 3e 0a 3c |harset=u|tf-8">.<|
|00000110| 4d 45 54 41 20 4e 41 4d | 45 3d 22 76 69 65 77 70 |META NAM|E="viewp|
|00000120| 6f 72 74 22 20 43 4f 4e | 54 45 4e 54 3d 22 77 69 |ort" CON|TENT="wi|
|00000130| 64 74 68 3d 64 65 76 69 | 63 65 2d 77 69 64 74 68 |dth=devi|ce-width|
|00000140| 2c 20 69 6e 69 74 69 61 | 6c 2d 73 63 61 6c 65 3d |, initia|l-scale=|
|00000150| 31 2e 30 22 3e 0a 3c 4d | 45 54 41 20 4e 41 4d 45 |1.0">.<M|ETA NAME|
|00000160| 3d 22 47 65 6e 65 72 61 | 74 6f 72 22 20 43 4f 4e |="Genera|tor" CON|
|00000170| 54 45 4e 54 3d 22 4c 61 | 54 65 58 32 48 54 4d 4c |TENT="La|TeX2HTML|
|00000180| 20 76 32 30 32 32 22 3e | 0a 0a 3c 4c 49 4e 4b 20 | v2022">|..<LINK |
|00000190| 52 45 4c 3d 22 53 54 59 | 4c 45 53 48 45 45 54 22 |REL="STY|LESHEET"|
|000001a0| 20 48 52 45 46 3d 22 64 | 6f 63 73 5f 61 72 74 5f | HREF="d|ocs_art_|
|000001b0| 74 65 78 2e 63 73 73 22 | 3e 0a 0a 3c 4c 49 4e 4b |tex.css"|>..<LINK|
|000001c0| 20 52 45 4c 3d 22 70 72 | 65 76 69 6f 75 73 22 20 | REL="pr|evious" |
|000001d0| 48 52 45 46 3d 22 6e 6f | 64 65 31 36 5f 6d 6e 2e |HREF="no|de16_mn.|
|000001e0| 68 74 6d 6c 22 3e 0a 3c | 4c 49 4e 4b 20 52 45 4c |html">.<|LINK REL|
|000001f0| 3d 22 75 70 22 20 48 52 | 45 46 3d 22 6e 6f 64 65 |="up" HR|EF="node|
|00000200| 31 36 5f 6d 6e 2e 68 74 | 6d 6c 22 3e 0a 3c 4c 49 |16_mn.ht|ml">.<LI|
|00000210| 4e 4b 20 52 45 4c 3d 22 | 6e 65 78 74 22 20 48 52 |NK REL="|next" HR|
|00000220| 45 46 3d 22 6e 6f 64 65 | 31 38 5f 6d 6e 2e 68 74 |EF="node|18_mn.ht|
|00000230| 6d 6c 22 3e 0a 3c 2f 48 | 45 41 44 3e 0a 20 0a 3c |ml">.</H|EAD>. .<|
|00000240| 42 4f 44 59 20 62 67 63 | 6f 6c 6f 72 3d 22 23 66 |BODY bgc|olor="#f|
|00000250| 66 66 66 66 66 22 20 74 | 65 78 74 3d 22 23 30 30 |fffff" t|ext="#00|
|00000260| 30 30 30 30 22 20 6c 69 | 6e 6b 3d 22 23 39 39 34 |0000" li|nk="#994|
|00000270| 34 45 45 22 20 76 6c 69 | 6e 6b 3d 22 23 30 30 30 |4EE" vli|nk="#000|
|00000280| 30 66 66 22 20 61 6c 69 | 6e 6b 3d 22 23 30 30 66 |0ff" ali|nk="#00f|
|00000290| 66 30 30 22 3e 0a 0a 3c | 48 32 3e 3c 41 20 49 44 |f00">..<|H2><A ID|
|000002a0| 3d 22 53 45 43 54 49 4f | 4e 30 30 30 37 31 30 30 |="SECTIO|N0007100|
|000002b0| 30 30 30 30 30 30 30 30 | 30 30 30 30 30 22 3e 0a |00000000|00000">.|
|000002c0| 50 65 72 66 6f 72 6d 61 | 6e 63 65 20 6f 66 20 43 |Performa|nce of C|
|000002d0| 2d 69 66 69 65 64 20 63 | 6f 64 65 3c 2f 41 3e 0a |-ified c|ode</A>.|
|000002e0| 3c 2f 48 32 3e 0a 0a 3c | 50 3e 0a 54 68 65 20 73 |</H2>..<|P>.The s|
|000002f0| 70 65 65 64 2d 75 70 20 | 63 6c 65 61 72 6c 79 20 |peed-up |clearly |
|00000300| 64 65 70 65 6e 64 73 20 | 6f 6e 20 74 68 65 20 61 |depends |on the a|
|00000310| 6d 6f 75 6e 74 20 6f 66 | 20 43 2d 69 66 69 63 61 |mount of| C-ifica|
|00000320| 74 69 6f 6e 0a 61 6e 64 | 20 6f 6e 20 74 68 65 20 |tion.and| on the |
|00000330| 73 74 61 74 69 73 74 69 | 63 61 6c 20 69 6d 70 6f |statisti|cal impo|
|00000340| 72 74 61 6e 63 65 20 6f | 66 20 43 2d 69 66 69 65 |rtance o|f C-ifie|
|00000350| 64 20 63 6f 64 65 20 69 | 6e 0a 74 68 65 20 65 78 |d code i|n.the ex|
|00000360| 65 63 75 74 69 6f 6e 20 | 70 72 6f 66 69 6c 65 20 |ecution |profile |
|00000370| 6f 66 20 61 20 70 72 6f | 67 72 61 6d 20 28 73 65 |of a pro|gram (se|
|00000380| 65 20 66 69 67 75 72 65 | 26 6e 62 73 70 3b 3c 41 |e figure| <A|
|00000390| 20 48 52 45 46 3d 22 6e | 6f 64 65 31 37 5f 63 74 | HREF="n|ode17_ct|
|000003a0| 2e 68 74 6d 6c 23 62 6d | 22 3e 3c 49 4d 47 20 20 |.html#bm|"><IMG |
|000003b0| 41 4c 54 3d 22 5b 2a 5d | 22 20 53 52 43 3d 22 63 |ALT="[*]|" SRC="c|
|000003c0| 72 6f 73 73 72 65 66 2e | 70 6e 67 22 3e 3c 2f 41 |rossref.|png"></A|
|000003d0| 3e 29 2e 0a 57 65 20 68 | 61 76 65 20 6e 6f 74 69 |>)..We h|ave noti|
|000003e0| 63 65 64 20 62 65 74 77 | 65 65 6e 20 31 30 2d 32 |ced betw|een 10-2|
|000003f0| 30 25 20 73 70 65 65 64 | 20 69 6e 63 72 65 61 73 |0% speed| increas|
|00000400| 65 20 66 6f 72 0a 70 72 | 6f 67 72 61 6d 73 20 77 |e for.pr|ograms w|
|00000410| 68 69 63 68 20 74 61 6b | 65 20 61 64 76 61 6e 74 |hich tak|e advant|
|00000420| 61 67 65 20 6f 66 20 43 | 2d 69 66 69 65 64 20 63 |age of C|-ified c|
|00000430| 6f 64 65 20 6d 6f 64 65 | 72 61 74 65 6c 79 2c 0a |ode mode|rately,.|
|00000440| 41 73 20 74 68 65 73 65 | 20 70 72 6f 67 72 61 6d |As these| program|
|00000450| 73 20 73 70 65 6e 64 20 | 6f 6e 6c 79 20 32 30 2d |s spend |only 20-|
|00000460| 33 30 25 20 6f 66 20 74 | 68 65 69 72 20 74 69 6d |30% of t|heir tim|
|00000470| 65 0a 69 6e 20 43 2d 69 | 66 69 65 64 20 73 65 71 |e.in C-i|fied seq|
|00000480| 75 65 6e 63 65 73 20 70 | 65 72 66 6f 72 6d 61 6e |uences p|erforman|
|00000490| 63 65 73 20 61 72 65 20 | 65 78 70 65 63 74 65 64 |ces are |expected|
|000004a0| 0a 74 6f 20 73 63 61 6c | 65 20 63 6f 72 72 65 73 |.to scal|e corres|
|000004b0| 70 6f 6e 64 69 6e 67 6c | 79 20 77 68 65 6e 0a 77 |pondingl|y when.w|
|000004c0| 65 20 65 78 74 65 6e 64 | 20 74 68 69 73 20 61 70 |e extend| this ap|
|000004d0| 70 72 6f 61 63 68 20 74 | 6f 20 74 68 65 20 66 75 |proach t|o the fu|
|000004e0| 6c 6c 20 42 69 6e 50 72 | 6f 6c 6f 67 20 0a 69 6e |ll BinPr|olog .in|
|000004f0| 73 74 72 75 63 74 69 6f | 6e 20 73 65 74 20 61 6e |structio|n set an|
|00000500| 64 20 69 6d 70 6c 65 6d | 65 6e 74 20 6c 6f 77 2d |d implem|ent low-|
|00000510| 6c 65 76 65 6c 0a 67 63 | 63 20 64 69 72 65 63 74 |level.gc|c direct|
|00000520| 20 6a 75 6d 70 73 20 69 | 6e 73 74 65 61 64 0a 6f | jumps i|nstead.o|
|00000530| 66 20 66 75 6e 63 74 69 | 6f 6e 20 63 61 6c 6c 73 |f functi|on calls|
|00000540| 20 61 6e 64 20 61 6e 74 | 69 2d 63 61 6c 6c 73 2e | and ant|i-calls.|
|00000550| 0a 0a 3c 50 3e 0a 0a 3c | 44 49 56 20 63 6c 61 73 |..<P>..<|DIV clas|
|00000560| 73 3d 22 43 45 4e 54 45 | 52 22 3e 3c 41 20 49 44 |s="CENTE|R"><A ID|
|00000570| 3d 22 62 6d 22 3e 3c 2f | 41 3e 3c 41 20 49 44 3d |="bm"></|A><A ID=|
|00000580| 22 34 34 37 22 3e 3c 2f | 41 3e 0a 3c 54 41 42 4c |"447"></|A>.<TABL|
|00000590| 45 3e 0a 3c 43 41 50 54 | 49 4f 4e 20 63 6c 61 73 |E>.<CAPT|ION clas|
|000005a0| 73 3d 22 42 4f 54 54 4f | 4d 22 3e 3c 53 54 52 4f |s="BOTTO|M"><STRO|
|000005b0| 4e 47 3e 46 69 67 75 72 | 65 3a 3c 2f 53 54 52 4f |NG>Figur|e:</STRO|
|000005c0| 4e 47 3e 0a 50 65 72 66 | 6f 72 6d 61 6e 63 65 20 |NG>.Perf|ormance |
|000005d0| 6f 66 20 65 6d 75 6c 61 | 74 65 64 20 28 65 6d 42 |of emula|ted (emB|
|000005e0| 50 29 20 61 6e 64 20 70 | 61 72 74 69 61 6c 6c 79 |P) and p|artially|
|000005f0| 0a 43 2d 69 66 69 65 64 | 20 42 69 6e 50 72 6f 6c |.C-ified| BinProl|
|00000600| 6f 67 20 33 2e 32 32 20 | 28 43 2d 42 50 29 0a 63 |og 3.22 |(C-BP).c|
|00000610| 6f 6d 70 61 72 65 64 20 | 74 6f 20 65 6d 75 6c 61 |ompared |to emula|
|00000620| 74 65 64 20 28 65 6d 53 | 50 29 20 61 6e 64 20 6e |ted (emS|P) and n|
|00000630| 61 74 69 76 65 20 28 6e | 61 74 53 50 29 20 53 49 |ative (n|atSP) SI|
|00000640| 43 53 74 75 73 20 32 2e | 31 5f 39 20 0a 6f 6e 20 |CStus 2.|1_9 .on |
|00000650| 61 20 53 70 61 72 63 20 | 31 30 2f 32 30 29 2e 0a |a Sparc |10/20)..|
|00000660| 3c 2f 43 41 50 54 49 4f | 4e 3e 0a 3c 54 52 3e 3c |</CAPTIO|N>.<TR><|
|00000670| 54 44 3e 3c 49 4d 47 0a | 20 53 54 59 4c 45 3d 22 |TD><IMG.| STYLE="|
|00000680| 68 65 69 67 68 74 3a 20 | 32 38 36 2e 37 36 65 78 |height: |286.76ex|
|00000690| 3b 20 22 20 53 52 43 3d | 22 69 6d 67 31 2e 70 6e |; " SRC=|"img1.pn|
|000006a0| 67 22 0a 20 41 4c 54 3d | 22 5c 62 65 67 69 6e 7b |g". ALT=|"\begin{|
|000006b0| 66 69 67 75 72 65 7d 5c | 62 65 67 69 6e 7b 63 65 |figure}\|begin{ce|
|000006c0| 6e 74 65 72 7d 0a 5c 62 | 65 67 69 6e 7b 74 61 62 |nter}.\b|egin{tab|
|000006d0| 75 6c 61 72 7d 7b 5c 76 | 65 72 74 5c 76 65 72 74 |ular}{\v|ert\vert|
|000006e0| 20 6c 5c 76 65 72 74 5c | 76 65 72 74 20 72 5c 76 | l\vert\|vert r\v|
|000006f0| 65 72 74 20 72 5c 76 65 | 72 2e 2e 2e 0a 2e 2e 2e |ert r\ve|r.......|
|00000700| 30 37 30 20 5c 5c 20 5c | 68 6c 69 6e 65 0a 5c 68 |070 \\ \|hline.\h|
|00000710| 6c 69 6e 65 0a 5c 68 6c | 69 6e 65 0a 5c 65 6e 64 |line.\hl|ine.\end|
|00000720| 7b 74 61 62 75 6c 61 72 | 7d 20 5c 5c 0a 5c 6d 65 |{tabular|} \\.\me|
|00000730| 64 73 6b 69 70 5c 65 6e | 64 7b 63 65 6e 74 65 72 |dskip\en|d{center|
|00000740| 7d 5c 65 6e 64 7b 66 69 | 67 75 72 65 7d 22 3e 3c |}\end{fi|gure}"><|
|00000750| 2f 54 44 3e 3c 2f 54 52 | 3e 0a 3c 2f 54 41 42 4c |/TD></TR|>.</TABL|
|00000760| 45 3e 0a 3c 2f 44 49 56 | 3e 0a 0a 3c 50 3e 0a 43 |E>.</DIV|>..<P>.C|
|00000770| 6f 64 65 2d 73 69 7a 65 | 73 20 66 6f 72 20 43 2d |ode-size|s for C-|
|00000780| 69 66 69 65 64 20 42 69 | 6e 50 72 6f 6c 6f 67 20 |ified Bi|nProlog |
|00000790| 65 78 65 63 75 74 61 62 | 6c 65 73 20 28 64 79 6e |executab|les (dyn|
|000007a0| 61 6d 69 63 61 6c 6c 79 | 20 6c 69 6e 6b 65 64 0a |amically| linked.|
|000007b0| 6f 6e 20 53 70 61 72 63 | 73 20 77 69 74 68 20 53 |on Sparc|s with S|
|000007c0| 6f 6c 61 72 69 73 20 32 | 2e 33 29 20 61 72 65 20 |olaris 2|.3) are |
|000007d0| 75 73 75 61 6c 6c 79 20 | 65 76 65 6e 0a 73 6d 61 |usually |even.sma|
|000007e0| 6c 6c 65 72 20 74 68 61 | 6e 20 60 63 6f 6d 70 61 |ller tha|n `compa|
|000007f0| 63 74 27 20 53 69 63 73 | 74 75 73 20 63 6f 64 65 |ct' Sics|tus code|
|00000800| 0a 77 68 69 63 68 20 75 | 73 65 73 20 63 6c 61 73 |.which u|ses clas|
|00000810| 73 69 63 61 6c 20 69 6e | 73 74 72 75 63 74 69 6f |sical in|structio|
|00000820| 6e 0a 66 6f 6c 64 69 6e | 67 20 28 61 20 66 65 77 |n.foldin|g (a few|
|00000830| 20 68 75 6e 64 72 65 64 | 73 20 6f 66 20 6f 70 63 | hundred|s of opc|
|00000840| 6f 64 65 73 29 20 74 6f | 20 73 70 65 65 64 2d 75 |odes) to| speed-u|
|00000850| 70 20 74 68 65 20 65 6d | 75 6c 61 74 6f 72 2e 0a |p the em|ulator..|
|00000860| 0a 3c 50 3e 0a 54 68 65 | 20 66 6f 6c 6c 6f 77 69 |.<P>.The| followi|
|00000870| 6e 67 20 74 61 62 6c 65 | 20 73 68 6f 77 73 20 73 |ng table| shows s|
|00000880| 6f 6d 65 20 63 6f 64 65 | 2d 73 69 7a 65 2f 65 78 |ome code|-size/ex|
|00000890| 65 63 75 74 69 6f 6e 2d | 73 70 65 65 64 20 0a 76 |ecution-|speed .v|
|000008a0| 61 72 69 61 74 69 6f 6e | 73 20 77 69 74 68 20 72 |ariation|s with r|
|000008b0| 65 73 70 65 63 74 20 74 | 6f 20 74 68 65 20 74 68 |espect t|o the th|
|000008c0| 72 65 73 68 6f 6c 64 20 | 66 6f 72 0a 74 68 65 20 |reshold |for.the |
|000008d0| 73 65 6d 69 2d 72 69 6e | 67 20 28 3c 54 54 3e 53 |semi-rin|g (<TT>S|
|000008e0| 45 4d 49 33 3c 2f 54 54 | 3e 29 20 62 65 6e 63 68 |EMI3</TT|>) bench|
|000008f0| 6d 61 72 6b 2e 20 43 6c | 65 61 72 6c 79 2c 20 65 |mark. Cl|early, e|
|00000900| 78 63 65 73 73 69 76 65 | 6c 79 0a 73 6d 61 6c 6c |xcessive|ly.small|
|00000910| 20 63 68 75 6e 6b 73 20 | 63 61 6e 20 69 6e 66 6c | chunks |can infl|
|00000920| 75 65 6e 63 65 20 61 64 | 76 65 72 73 65 6c 79 20 |uence ad|versely |
|00000930| 6e 6f 74 20 6f 6e 6c 79 | 20 6f 6e 0a 73 69 7a 65 |not only| on.size|
|00000940| 20 62 75 74 20 61 6c 73 | 6f 20 6f 6e 20 73 70 65 | but als|o on spe|
|00000950| 65 64 2e 20 53 6f 6d 65 | 74 68 69 6e 67 20 6c 69 |ed. Some|thing li|
|00000960| 6b 65 20 74 68 72 65 73 | 68 6f 6c 64 3d 32 30 2c |ke thres|hold=20,|
|00000970| 0a 6c 6f 6f 6b 73 20 6c | 69 6b 65 20 61 20 70 72 |.looks l|ike a pr|
|00000980| 61 63 74 69 63 61 6c 20 | 6f 70 74 69 6d 75 6d 0a |actical |optimum.|
|00000990| 66 6f 72 20 74 68 69 73 | 20 70 72 6f 67 72 61 6d |for this| program|
|000009a0| 2e 0a 0a 3c 50 3e 0a 3c | 50 52 45 3e 0a 74 68 72 |...<P>.<|PRE>.thr|
|000009b0| 65 73 68 6f 6c 64 3a 20 | 20 20 30 20 20 20 20 34 |eshold: | 0 4|
|000009c0| 20 20 20 20 38 20 20 20 | 20 32 30 20 20 33 30 20 | 8 | 20 30 |
|000009d0| 20 31 30 30 30 20 65 6d | 42 50 20 65 6d 53 50 20 | 1000 em|BP emSP |
|000009e0| 6e 61 74 53 50 0a 73 69 | 7a 65 3a 20 20 28 4b 29 |natSP.si|ze: (K)|
|000009f0| 20 20 33 34 2e 35 20 33 | 32 2e 32 20 32 39 2e 39 | 34.5 3|2.2 29.9|
|00000a00| 20 31 36 2e 33 20 31 33 | 2e 31 20 31 32 2e 39 20 | 16.3 13|.1 12.9 |
|00000a10| 20 34 2e 38 20 32 32 2e | 30 20 33 31 2e 39 0a 73 | 4.8 22.|0 31.9.s|
|00000a20| 70 65 65 64 3a 20 28 6d | 73 29 20 31 34 38 30 20 |peed: (m|s) 1480 |
|00000a30| 31 34 33 30 20 31 34 34 | 30 20 31 34 35 30 20 31 |1430 144|0 1450 1|
|00000a40| 38 31 30 20 31 37 39 30 | 20 31 38 30 30 20 31 38 |810 1790| 1800 18|
|00000a50| 31 30 20 31 33 31 30 0a | 3c 2f 50 52 45 3e 0a 0a |10 1310.|</PRE>..|
|00000a60| 3c 50 3e 0a 0a 3c 48 52 | 3e 0a 0a 3c 2f 42 4f 44 |<P>..<HR|>..</BOD|
|00000a70| 59 3e 0a 3c 2f 48 54 4d | 4c 3e 0a |Y>.</HTM|L>. |
+--------+-------------------------+-------------------------+--------+--------+