Closed Bug 133212 (ctl_bustage) Opened 23 years ago Closed 22 years ago

--enable-ctl bustage

Categories

(Core :: Layout: Text and Fonts, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla1.1final

People

(Reporter: roland.mainz, Assigned: roland.mainz)

References

(Blocks 1 open bug)

Details

(Keywords: fixedOEM, intl)

Attachments

(9 files, 3 obsolete files)

2002-03-23-08-trunk build with Sun Workshop 7 EA 2 on Solaris 7 SPARC, GTK+ toolkit and --enable-ctl The build fails with: -- snip -- nsTextFrame.cpp Building deps for ../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp /opt/SUNWspro/FD7/bin/CC -o nsTextFrame.o -c -DOSTYPE=\"SunOS5\" -DOSARCH=\"SunOS\" -DOJI -D_IMPL_NS_HTML -I../../../../../../../../../home/mozilla/src/2002-0 3-23-08-trunk/mozilla/layout/html/base/src/../../../xul/base/src -I../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/sr c/../../../xul/content/src -I../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/../../style/src -I../../../../../../ ../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/../../forms/src -I../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/m ozilla/layout/html/base/src/../../../base/src -I../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src -I../../../../di st/include/xpcom -I../../../../dist/include/string -I../../../../dist/include/dom -I../../../../dist/include/content -I../../../../dist/include/gfx -I../../.. /../dist/include/widget -I../../../../dist/include/layout_xul -I../../../../dist/include/locale -I../../../../dist/include/view -I../../../../dist/include/nec ko -I../../../../dist/include/js -I../../../../dist/include/caps -I../../../../dist/include/pref -I../../../../dist/include/htmlparser -I../../../../dist/incl ude/webshell -I../../../../dist/include/plugin -I../../../../dist/include/docshell -I../../../../dist/include/mimetype -I../../../../dist/include/webbrwsr -I. ./../../../dist/include/oji -I../../../../dist/include/util -I../../../../dist/include/unicharutil -I../../../../dist/include/lwbrk -I../../../../dist/include /gfx2 -I../../../../dist/include/imglib2 -I../../../../dist/include/accessibility -I../../../../dist/include/xpconnect -I../../../../dist/include/java -I../.. /../../dist/include/exthandler -I../../../../dist/include/ctl -I../../../../dist/include/layout -I../../../../dist/include -I/shared/bigtmp2/mozilla/2002-03-2 3-08-trunk/objdir_ws7ea2_gtk/dist/include/nspr -I/usr/openwin/include -KPIC -I/usr/openwin/include -mt -DDEBUG -D_DEBUG -DDEBUG_mozilla -DTRACING -g -O -I/usr/openwin/include -DMOZILLA_CLIENT -DBROKEN_QSORT=1 -DNSCAP_DISABLE_DEBUG_PTR_TYPES=1 -DD_INO=d_ino -DSTDC_HEADERS=1 -DHAVE_ST_BLKSIZE=1 -DHAVE_INT16 _T=1 -DHAVE_INT32_T=1 -DHAVE_INT64_T=1 -DHAVE_UINT=1 -DHAVE_UINT_T=1 -DHAVE_UINT16_T=1 -DHAVE_DIRENT_H=1 -DHAVE_SYS_BYTEORDER_H=1 -DHAVE_MEMORY_H=1 -DHAVE_UNI STD_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_SYS_STATVFS_H=1 -DHAVE_SYS_STATFS_H=1 -DHAVE_SYS_VFS_H=1 -DHAVE_SYS_MOUNT_H=1 -DHAVE_LIBM=1 -DHAVE_LIBD L=1 -DHAVE_LIBSOCKET=1 -DFUNCPROTO=15 -DHAVE_XSHM=1 -D_REENTRANT=1 -DHAVE_RANDOM=1 -DHAVE_STRERROR=1 -DHAVE_LCHOWN=1 -DHAVE_FCHMOD=1 -DHAVE_SNPRINTF=1 -DHAVE_ LOCALTIME_R=1 -DHAVE_STATVFS=1 -DHAVE_MEMMOVE=1 -DHAVE_RINT=1 -DHAVE_NL_LANGINFO=1 -DHAVE_STRTOK_R=1 -DHAVE_FLOCKFILE=1 -DHAVE_IOS_BINARY=1 -DHAVE_CPP_EXPLICI T=1 -DHAVE_CPP_SPECIALIZATION=1 -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX=1 -DHAVE_CPP_PARTIAL_SPECIALIZATION=1 -DHAVE_CPP_ACCESS_CHANGING_USING=1 -DHAVE_C PP_AMBIGUITY_RESOLVING_USING=1 -DHAVE_CPP_NAMESPACE_STD=1 -DHAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL=1 -DHAVE_CPP_NEW_CASTS=1 -DHAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR=1 - DNEED_CPP_UNUSED_IMPLEMENTATIONS=1 -DHAVE_I18N_LC_MESSAGES=1 -DMOZ_DEFAULT_TOOLKIT=\"gtk\" -DMOZ_WIDGET_GTK=1 -DMOZ_ENABLE_XREMOTE=1 -DMOZ_X11=1 -DIBMBIDI=1 - DSUNCTL=1 -DACCESSIBILITY=1 -DMOZ_MATHML=1 -DMOZ_LOGGING=1 -DDETECT_WEBSHELL_LEAKS=1 -DMOZ_USER_DIR=\".mozilla\" -DMOZ_XUL=1 -DINCLUDE_XUL=1 -DNS_MT_SUPPORTED =1 -DUSE_IMG2=1 -DMOZ_DLL_SUFFIX=\".so\" -DXP_UNIX=1 -DUNIX_ASYNC_DNS=1 -DJS_THREADSAFE=1 -DNS_PRINT_PREVIEW=1 -DMOZ_REFLOW_PERF=1 -DMOZ_REFLOW_PERF_DSP=1 .. /../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 105: Error: Could not open include file " nsILE.h". "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 2342: Error: NS_ULE_CID is not defined. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 2344: Error: nsILE is not defined. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 2344: Error: Template parameter T require s a type argument. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 2354: Error: GetRangeOfCluster is not a m ember of nsDerivedSafe<T>. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 2356: Warning: The variable mStart has no t yet been assigned a value. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 2358: Warning: The variable mEnd has not yet been assigned a value. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 2363: Error: GetRangeOfCluster is not a m ember of nsDerivedSafe<T>. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 3989: Error: NS_ULE_CID is not defined. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 3991: Error: nsILE is not defined. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 3991: Error: Template parameter T require s a type argument. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 4007: Error: PrevCluster is not a member of nsDerivedSafe<T>. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 4030: Error: NS_ULE_CID is not defined. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 4032: Error: nsILE is not defined. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 4032: Error: Template parameter T require s a type argument. "../../../../../../../../../home/mozilla/src/2002-03-23-08-trunk/mozilla/layout/html/base/src/nsTextFrame.cpp", line 4049: Error: NextCluster is not a member of nsDerivedSafe<T>. 14 Error(s) and 2 Warning(s) detected. gmake[5]: *** [nsTextFrame.o] Error 14 gmake[5]: Leaving directory `/shared/bigtmp2/mozilla/2002-03-23-08-trunk/objdir_ws7ea2_gtk/layout/html/base/src' gmake[4]: *** [libs] Error 2 gmake[4]: Leaving directory `/shared/bigtmp2/mozilla/2002-03-23-08-trunk/objdir_ws7ea2_gtk/layout/html/base' gmake[3]: *** [libs] Error 2 gmake[3]: Leaving directory `/shared/bigtmp2/mozilla/2002-03-23-08-trunk/objdir_ws7ea2_gtk/layout/html' gmake[2]: *** [libs] Error 2 gmake[2]: Leaving directory `/shared/bigtmp2/mozilla/2002-03-23-08-trunk/objdir_ws7ea2_gtk/layout' gmake[1]: *** [tier_9] Error 2 gmake[1]: Leaving directory `/shared/bigtmp2/mozilla/2002-03-23-08-trunk/objdir_ws7ea2_gtk' gmake: *** [default] Error 2 -- snip -- A % cd extensions/ctl % gmake export % cd ../.. % gmake fixes the problem...
Attached file Full build log (2002-03-23-08-trunk) (deleted) —
Attachment #75928 - Attachment is patch: false
Attachment #75928 - Attachment mime type: text/plain → application/gzip
-> Layout.
Assignee: seawood → attinasi
Component: Build Config → Layout
QA Contact: granrose → petersen
cls: Are you sure that this issue is in layout/ ? AFAIK this looks more like that the "export" target in extensions/ctl must be executed before building layout/ - or am I wrong here ?
If that's the case, then it is a layout design issue (or ctl design issue--however you choose to put it). Per bug 18352 and the announcement that Brendan sent out awhile back, the core mozilla build is not supposed to have dependencies upon extensions. That is enforced on gmake builds by exporting and building extensions *after* the main code has been built.
Broken on Linux as well.
OS: Solaris → All
Hardware: Sun → All
Priority: -- → P1
Target Milestone: --- → Future
CTL is working... and the manual "gmake export" does not seem to harm the build... ... can we add a workaround to get the CTL extension building again for the 1.0 milestone and file a bug for a better solution (for example, following the MathML example and move the CTL code out of extensions/ctl/ and into layout/) after 1.0 has been released ?
*** Bug 138481 has been marked as a duplicate of this bug. ***
*** Bug 140000 has been marked as a duplicate of this bug. ***
Blocks: 79287
Blocks: 122552
Blocks: thai
This is a ctl design issue.
Assignee: attinasi → katakai
Component: Layout → Internationalization
Attached patch Possible workaround for 2002-07-27-08-trunk (obsolete) (deleted) — Splinter Review
This patch may provide a workaround until we have a better solution...
Attachment #93188 - Attachment is obsolete: true
Alias: ctl_bustage
David Baron wrote: > This is a ctl design issue. Well, it did work for (AFAIK) a long time (one year or more) ... ... what would you recommed as solution ? Move everthing from extensions/ctl/ to layout/ and treat it like IBM's BiDi code (that would be my preferred solution) ?
Another idea is to split the CTL core and Encoder component and get nsILE to live in intl/ctl. Infact the code itself is XP and not *nix specific. prabhat.
Roland, can you take this?
Assignee: katakai → Roland.Mainz
Masaki Katakai wrote: > Roland, can you take this? Sure, but I need a checkin buddy for the change who is reachable via IRC... any voluteers ? :)
Status: NEW → ASSIGNED
Target Milestone: Future → mozilla1.1final
prabhat/katakai: Currently we have the follwing files in mozilla/extensions/ctl/: -- snip -- mozilla/extensions/ctl/public/Makefile.in mozilla/extensions/ctl/public/nsCtlCIID.h mozilla/extensions/ctl/public/nsILE.h mozilla/extensions/ctl/Makefile.in mozilla/extensions/ctl/readme.txt mozilla/extensions/ctl/src/pangoLite mozilla/extensions/ctl/src/pangoLite/Makefile.in mozilla/extensions/ctl/src/pangoLite/glyphstring.c mozilla/extensions/ctl/src/pangoLite/modules.c mozilla/extensions/ctl/src/pangoLite/modules.h mozilla/extensions/ctl/src/pangoLite/pango-coverage.c mozilla/extensions/ctl/src/pangoLite/pango-coverage.h mozilla/extensions/ctl/src/pangoLite/pango-engine.h mozilla/extensions/ctl/src/pangoLite/pango-glyph.h mozilla/extensions/ctl/src/pangoLite/pango-modules.h mozilla/extensions/ctl/src/pangoLite/pango-types.h mozilla/extensions/ctl/src/pangoLite/pango-utils.c mozilla/extensions/ctl/src/pangoLite/pango-utils.h mozilla/extensions/ctl/src/pangoLite/pango.h mozilla/extensions/ctl/src/pangoLite/pango.modules mozilla/extensions/ctl/src/pangoLite/querymodules.c mozilla/extensions/ctl/src/pangoLite/shape.c mozilla/extensions/ctl/src/Makefile.in mozilla/extensions/ctl/src/nsCtlLEModule.cpp mozilla/extensions/ctl/src/nsULE.cpp mozilla/extensions/ctl/src/nsULE.h mozilla/extensions/ctl/src/nsUnicodeToTIS620.cpp mozilla/extensions/ctl/src/nsUnicodeToTIS620.h mozilla/extensions/ctl/src/thaiShaper mozilla/extensions/ctl/src/thaiShaper/Makefile.in mozilla/extensions/ctl/src/thaiShaper/thai-x.c -- snip -- 1. Which new locations do you propose for the CTL code ? What about mozilla/layout/ctl/ and mozilla/intl/ctl ? 2. Which file should go in which directory ?
hi roland, Thanks for picking up this bug. In my view the files should go as below: The following into mozilla/intl/ctl: ie, mozilla/extensions/ctl -> mozilla/intl/ctl mozilla/extensions/ctl/public/Makefile.in mozilla/extensions/ctl/public/nsCtlCIID.h mozilla/extensions/ctl/public/nsILE.h mozilla/extensions/ctl/Makefile.in mozilla/extensions/ctl/readme.txt mozilla/extensions/ctl/src/pangoLite mozilla/extensions/ctl/src/pangoLite/Makefile.in mozilla/extensions/ctl/src/pangoLite/glyphstring.c mozilla/extensions/ctl/src/pangoLite/modules.c mozilla/extensions/ctl/src/pangoLite/modules.h mozilla/extensions/ctl/src/pangoLite/pango-coverage.c mozilla/extensions/ctl/src/pangoLite/pango-coverage.h mozilla/extensions/ctl/src/pangoLite/pango-engine.h mozilla/extensions/ctl/src/pangoLite/pango-glyph.h mozilla/extensions/ctl/src/pangoLite/pango-modules.h mozilla/extensions/ctl/src/pangoLite/pango-types.h mozilla/extensions/ctl/src/pangoLite/pango-utils.c mozilla/extensions/ctl/src/pangoLite/pango-utils.h mozilla/extensions/ctl/src/pangoLite/pango.h mozilla/extensions/ctl/src/pangoLite/pango.modules mozilla/extensions/ctl/src/pangoLite/querymodules.c mozilla/extensions/ctl/src/pangoLite/shape.c mozilla/extensions/ctl/src/Makefile.in mozilla/extensions/ctl/src/nsCtlLEModule.cpp mozilla/extensions/ctl/src/nsULE.cpp mozilla/extensions/ctl/src/nsULE.h mozilla/extensions/ctl/src/thaiShaper mozilla/extensions/ctl/src/thaiShaper/Makefile.in mozilla/extensions/ctl/src/thaiShaper/thai-x.c The following into intl/uconv/th or intl/uconv/ctl mozilla/extensions/ctl/src/nsUnicodeToTIS620.cpp mozilla/extensions/ctl/src/nsUnicodeToTIS620.h The logic i've used is to separate CTL functionality into: A> Encoder B> Layout (Identify CTL characters to form logical character, Don't split characters when drawing and measuring, ditto with cursor movement and selection) C> Graphics Draw/Shape/Assign glyphs, Measure Additional (yet untackled functionality is Searching and Printing). thanks, prabhat
prabhat: Should we try to preserve the CVS blame/history of the files in mozilla/extensions/ctl/ by moving the files on the CVS server side and then patch them (difficult) or can I simply move the whole bunch of files via a patch (which is little bit easier and allows that we can do all neccesary modifications in one step for both "trunk" and "1.0.1-branch") ?
hi roland - you may move them all as a patch. No need to maintain history. thanks,
I'm just curious whether this bug remains a blocker for mozilla 1.1, or whether it is being held off for later. In any case, we will need to apply the patch to the 1.0.1 branch AND a 1.1 branch (1.1 or "1.1.1"), as well as the trunk.
Rick Stockton wrote: > In any case, we will need to apply the patch to > the 1.0.1 branch AND a 1.1 branch (1.1 or "1.1.1"), as well as the trunk. Since the CTL extension code wasn't touched for some time I "guess" my patch should apply to both 1.0.1-branch, 1.1-branch and trunk.
Trunk patch to enable CTL support. New directory hindiShaper is also needed. This will be attached as a part of the following attachments.
Attached file Patch w.r.t NETSCAPE_7_)_OEM_BRANCH (deleted) —
Patch w.r.t OEM branch NETSCAPE_7_0_OEM_BRANCH respectively. Should also apply to 1.0 and 1.0.1. Needs hindiShaper directory which will follow in following attachment.
Use this for ctl extension part alongwith intl and gfx diffs from #96501. Saves trouble of patching.
Use this alongwith 96053 and 96054 to apply against NETSCAPE_7_0_OEM_BRANCH.
Attached file Script to move the files into it's new locations (obsolete) (deleted) —
prabhat: Are the new locations for these files OK for you ?
hi roland - yes, its fine for me. Only one comment - once moved into intl, makefile.win(s) need to be also added, is'nt it? prabhat.
(from Attachment #96051 [details]): > Index: gfx/src/gtk/nsFontMetricsGTK.cpp > =================================================================== > RCS file: /cvsroot/mozilla/gfx/src/gtk/nsFontMetricsGTK.cpp,v > retrieving revision 1.217 > diff -u -r1.217 nsFontMetricsGTK.cpp > --- gfx/src/gtk/nsFontMetricsGTK.cpp 9 Aug 2002 00:12:48 -0000 1.217 > +++ gfx/src/gtk/nsFontMetricsGTK.cpp 20 Aug 2002 18:29:57 -0000 > /* > @@ -519,11 +529,14 @@ > { "tis620.2533-0", &FLG_NONE, &TIS620 }, > { "tis620.2533-1", &FLG_NONE, &TIS620 }, > { "tis620-0", &FLG_NONE, &TIS620 }, > +#ifdef SUNCTL > + { "sun.unicode.india-0",&FLG_NONE, &sunIndic }, > +#endif Who defines/declares |sunIndic| ?
Prabhat Hegde wrote: > hi roland - yes, its fine for me. Only one comment - once moved into intl, > makefile.win(s) need to be also added, is'nt it? Yes and no. If we don't modify the parent makefile.win and teach it about the new ctl subdir we don't need to do anything unless we enable the CTL code on non-Unix machines, too (Win32 is not the only problem, AFAIK we have to patch Mac stuff. too). Let's focus to get CTL working on Unix first and file bugs for the other platforms, please (I don't have a Win32 build box nor a PPC Mac machine, I can't handle the other platforms) ...
Attached file Trunk Diff with nsFontMetricsGTK.cpp (deleted) —
OOps - Apologies - my fault regarding sunIndic.
Ok - about other platforms. Regarding uconv/th vs uconv/ctl, i prefer uconv/ctl as all the CTL scripts that rely on dumb/not-OT encoder support can reside here.
Prabhat Hegde wrote: > Ok - about other platforms. Regarding uconv/th vs uconv/ctl, i prefer > uconv/ctl as all the CTL scripts that rely on dumb/not-OT encoder support can > reside here Splitting&moving extensions/ctl is slighly more difficult than had expected - the whole code in nsUnicodeToTIS620.cpp depends on "nsULE.h" which depends itself on the "pango-types.h" and "pango-glyph.h". Is it OK to put nsUnicodeToTIS620.cpp into mozilla/extensions/ctl/src for now to avoid the mess of rewriting parts of the code ?
sure - i'll work on removing the dependency and file a seperate bug once its done.
makefile.win is no longer used, so you have one less worry :-) On the other hand, the converters may need changing to fit with the recent checkin from bug 157993 :-(
ftang: Do we have your permission to invade your "intl" module dir and create a new subdir "mozilla/intl/ctl" as a new home for the CTL code ?
Attachment #96064 - Attachment is obsolete: true
Comment on attachment 96261 [details] [diff] [review] Move source files and adopt build glue patch for 2002-08-18-08-trunk r=cls on the build changes.
Attachment #96261 - Flags: review+
OK, I am done with all test builds, it seems that everything is now working again if attachment 96261 [details] [diff] [review] gets applied to "trunk". Now the only remaining thing we need is ftang's permission... ... ftang ?
I've catched ftang via AIM and got green light ('go for it') ...
smontagu will check the patch in (the dirs have already been created in CVS) when the tree openes again (still closed... ;-( ).
Checked in.
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
For the log: - All your patches for mozilla/extensions/ctl should still work if you change the paths in the patch file from "extensions/ctl" to "intl/ctl" (even the Makefiles.in stuff should work) - Please don't checkin anything into extensions/ctl anymore, I'll get the CVS admin to remove these dirs in the near future
Keywords: intl
Whiteboard: branchOEM
Whiteboard: branchOEM → branchOEM+
checked in to OEM branch. One question: Should I change "configure" file by myself? Or will someone generate this and will check in? I'm now asking the question to Jim and Margaret.
Whiteboard: branchOEM+ → fixedOEM
Attached patch configure changes for OEM branch, example (obsolete) (deleted) — Splinter Review
All files for CTL have been checked in to OEM branch. But "configure" needs to be updated. I'm asking the changes are OK for OME branch to Jim and Margaret.
Attachment #97508 - Attachment is obsolete: true
"configure" file also has been checked in to OEM branch.
Re comment 43: > I'll get the CVS admin to remove these dirs in the near future Directories should be removed by using "cvs remove" on all of the files in the directories. Once that is done, the directory will disappear from pulls. Actually removing the directories from the repository will lead to a loss of cvs history and inability to build old releases.
Keywords: fixedOEM
Whiteboard: fixedOEM
SPAM: Over to new bugzilla component "Complex Text Layout" (2nd try) ...
Component: Internationalization → Complex Text Layout
Component: Layout: CTL → Layout: Text
QA Contact: chrispetersen → layout.fonts-and-text
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: