# Test/win32ole

**URL:** <https://www.ruby-forum.com/t/test-win32ole/112634>\
**Category:** Development\
**Created:** [August 21, 2007, 5:02pm UTC](https://www.ruby-forum.com/t/test-win32ole/112634 "2007-08-21T17:02:55Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [August 21, 2007, 5:02pm UTC](https://www.ruby-forum.com/t/test-win32ole/112634/1 "2007-08-21T17:02:55Z")

</div>

e$B!!$5$5$@$G$9!%e(B

e$B!!e(Bmswin32 e$B$G$Ne(B test/win32ole  
e$B$,\<B9TCf$K0[\>o=\*N;$9$k$N$G$9$,!$$I$J$+e(B  
e$B$??4Ev$?$j$O$"$j$^$9$G$7$g$&$+!%e(B

> test\_invokeverb(TestInvokeVerb): E  
> test\_ole\_methods(TestMyDict): .  
> from c:/ko1/src/ruby/trunk/lib/test/unit/testcase.rb:75:in `run’  
> from c:/ko1/src/ruby/trunk/lib/test/unit/ui/console/testrunner.rb:67:in  
> test\_on\_event3(TestWIN32OLE\_EVENT): .  
> test\_initialize(TestWIN32OLE\_METHOD): .  
> test\_size\_params(TestWIN32OLE\_METHOD): .  
> test\_retval?(TestWIN32OLE\_PARAM): .  
> test\_minor\_version(TestWIN32OLE\_TYPE): .  
> test\_name(TestWIN32OLE\_TYPE): .  
> test\_ole\_methods(TestWIN32OLE\_TYPE): .  
> test\_ole\_type(TestWIN32OLE\_TYPE): .  
> test\_ole\_typelib(TestWIN32OLE\_TYPE): .  
> test\_progid(TestWIN32OLE\_TYPE):

e$B!!:!=h$G;_$^$j$^$9!%%G%P%C%,!Je(BVCe$B!K$Oe(B win32ole.c e$B$Ne(B  
2019 e$B9TL$Ne(B  
atof() e$B$G;_$^$C$F$k!$$\_$?$$$J$3$H$r8@$C$F$k$s$G$9$,!%e(B

e$B!!\<+J,$N4D6-$,e(B Vista e$B$@$+$i$+$b$7$l$^$;$s!%e(BVC 8  
e$B$G$9!Je(Bruby 1.9.0  
(2007-08-21 patchlevel 0)  
[i386-mswin32\_80]e$B!K!%B\>$KI,MW$J\>pJs$,$"$le(B  
e$B$P$4;XE&$/$@$5$$!%e(B

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [August 22, 2007, 12:01pm UTC](https://www.ruby-forum.com/t/test-win32ole/112634/2 "2007-08-22T12:01:31Z")

</div>

e$B=uED$G$9!#e(B

In message “[ruby-dev:31576] test/win32ole”  
on 07/08/22, SASADA Koichi [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> e$B!!e(Bmswin32 e$B$G$Ne(B test/win32ole e$B$,\<B9TCf$K0[\>o=\*N;$9$k$N$G$9$,!$$I$J$+e(B  
> e$B$??4Ev$?$j$O$"$j$^$9$G$7$g$&$+!%e(B

(snip)

> > test\_progid(TestWIN32OLE\_TYPE):
> 
> e$B!!:!=h$G;_$^$j$^$9!%%G%P%C%,!Je(BVCe$B!K$Oe(B win32ole.c e$B$Ne(B 2019 e$B9TL$Ne(B  
> atof() e$B$G;_$^$C$F$k!$$\_$?$$$J$3$H$r8@$C$F$k$s$G$9$,!%e(B
> 
> e$B!!\<+J,$N4D6-$,e(B Vista e$B$@$+$i$+$b$7$l$^$;$s!%e(BVC 8 e$B$G$9!Je(Bruby 1.9.0  
> (2007-08-21 patchlevel 0) [i386-mswin32\_80]e$B!K!%B\>$KI,MW$J\>pJs$,$"$le(B  
> e$B$P$4;XE&$/$@$5$$!%e(B

e$B\<j85$Ke(BVistae$B$N4D6-$,L5$$$N$G!"$5$C$Q$j$o$+$i$J$$$N$G$9$,e(B…e$B!#e(B

Windows XP e$B$Ge(B VC71e$B$@$H:F8=$7$^$;$s$G$7$?!#e(B(ruby 1.9.0  
(2007-08-22 patchlevel 0) [i386-mswin32\_71])

atofe$B$N$“$?$j$C$F!”%l%8%9%H%j$N\>pJs$rFI$s$G$$$k$s$G$9$1$I!"e(B  
e$B%l%8%9%H%j$N\>pJse(B(e$B9=@.e(B)e$B$,e(BVistae$B$GJQ$o$C$F$7$^$C$?$N$G$7$g$&$+!)e(B  
e$B%l%8%9%H%j$N\>pJs$H$7$Fe(B

HKEY\_CLASSES\_ROOT\TypeLib{CLSID}\2.0

e$B$H$$$&$h$&$J\>pJs$,3JG\<$5$l$F$$$k$3$H$rA[Dj$7$F$$$^$9!#e(B  
Vistae$B$G$O$I$&$J$C$F$$$k$+$o$+$j$^$9$+!)e(B  
(e$B\<B:]$Ne(BCLSIDe$B$O!"e(B{0000001-0000-0000-0000-000000000001}e$B$\_$?$$$K$J$C$F$^$9!#e(B)

atofe$B$N$"$?$j$O!"e(BHKEY\_CLASSES\_ROOTe$BFb$Ne(BTypeLibe$BFb$Ne(BCLSIDe$BFb$Ne(B  
Version(e$B\>e$NNc$G$$$&$He(B2.0)e$B$NCf$N0lHVBg$-$$$N$rC5$9=hM}$r$7$F$$$^$9!#e(B

e$B$"$H!"e(Bwin32ole.ce$B$Ne(Breg\_enum\_keye$B4X?t$Ge(B  
char buf[BUFSIZ]e$B!(e(B  
e$B$H@k8@$7$F$k$s$G$9$1$I!"e(BBUFSIZe$B$,e(BVistae$B!"e(BVC8e$B$N4D6-$@$H$$$/$D$+$o$+$j$^$9$+!)e(B

e$B@0M}$9$k$H!“$H$j$”$($:!"CN$j$?$$\>pJs$H$7$F\<!$Ne(B2e$B$D$r$\*4j$$$G$-$^$9$+!)e(B  
(1) Vistae$B$N%l%8%9%H%j\>pJs$,e(B  
HKEY\_CLASSES\_ROOT\TypeLib{CLSID}\2.0  
e$B$N$h$&$J9=@.$K$J$C$F$$$k$N$+$I$&$+!)e(B  
(2) BUFSIZe$B$NCMe(B

# Vistae$B$O$^$@?($C$?$3$H$,$J$$e(B

e$B=uED2m5\*e(B

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [August 22, 2007, 3:00pm UTC](https://www.ruby-forum.com/t/test-win32ole/112634/3 "2007-08-22T15:00:15Z")

</div>

e$B!!$5$5$@$G$9!%e(B

Masaki S. wrote:

> e$B@0M}$9$k$H!"$H$j$"$($:!"CN$j$?$$\>pJs$H$7$F\<!$Ne(B2e$B$D$r$\*4j$$$G$-$^$9$+!)e(B  
> (1) Vistae$B$N%l%8%9%H%j\>pJs$,e(B  
> HKEY\_CLASSES\_ROOT\TypeLib{CLSID}\2.0  
> e$B$N$h$&$J9=@.$K$J$C$F$$$k$N$+$I$&$+!)e(B

e$B!!$@!\<!\<$C$HD/$a$F$\_$?$H$3$m!$e(B"a.0"  
e$B$H$$$&$N$,$"$j$^$7$?!%$3$l$O$I$&e(B  
e$B$G$7$g$&$+!%e(B

> (2) BUFSIZe$B$NCMe(B

> t.c(1) : error C2065: ‘BUFSIZ’ : e$BDj5A$5$l$F$$$J$$\<1JL;R$G$9!#e(B

e$B!!$J$s$+I,MW$J%X%C%@$H$+$"$j$^$9!)e(B

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [August 22, 2007, 3:19pm UTC](https://www.ruby-forum.com/t/test-win32ole/112634/4 "2007-08-22T15:19:20Z")

</div>

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:31597] Re: test/win32ole”  
on Aug.22,2007 21:58:57, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
| \> (2) BUFSIZe$B$NCMe(B  
|  
| \> t.c(1) : error C2065: ‘BUFSIZ’ : e$BDj5A$5$l$F$$$J$$\<1JL;R$G$9!#e(B  
|  
| e$B!!$J$s$+I,MW$J%X%C%@$H$+$"$j$^$9!)e(B

BUFSIZe$B$Oe(Bstdio.he$B$GDj5A$5$l$k%^%/%m$G$9!#e(B  
(JIS X 3010-1993 7.9.1)

VC8e$B$G$Oe(B512e$B$C$9$M!#3d$H@N$+$iJQ$o$C$F$^$;$s!#e(B

e$B$=$l$G$O!#e(B

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [August 22, 2007, 3:24pm UTC](https://www.ruby-forum.com/t/test-win32ole/112634/5 "2007-08-22T15:24:20Z")

</div>

e$B=uED$G$9!#e(B

In message “[ruby-dev:31597] Re: test/win32ole”  
on 07/08/22, SASADA Koichi [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> Masaki S. wrote:
> 
> > e$B@0M}$9$k$H!“$H$j$”$($:!"CN$j$?$$\>pJs$H$7$F\<!$Ne(B2e$B$D$r$\*4j$$$G$-$^$9$+!)e(B  
> > (1) Vistae$B$N%l%8%9%H%j\>pJs$,e(B  
> > HKEY\_CLASSES\_ROOT\TypeLib{CLSID}\2.0  
> > e$B$N$h$&$J9=@.$K$J$C$F$$$k$N$+$I$&$+!)e(B
> 
> e$B!!$@!\<!\<$C$HD/$a$F$\_$?$H$3$m!$e(B"a.0" e$B$H$$$&$N$,$"$j$^$7$?!%$3$l$O$I$&e(B  
> e$B$G$7$g$&$+!%e(B

e$B$H$j$"$($:!“e(BHKEY\_CLASSES\_ROOT e$B$H$+e(B  
TypeLibe$B$H$+$O$”$k$C$F$3$H$G$9$M!#e(B  
a.0e$B$H$$$&$N$OA[Dj$7$F$^$;$s$G$7$?!#e(B  
e$B$G$b!“e(Batof(“a.0”)e$B$G0[\>o=\*N;$9$k$H$O;W$($J$$$7e(B…e$B!#e(B  
e$B$R$g$C$H$7$?$iL5Cc6lCc7e?t$NB?$$e(B(BUFSIZe$B$r\>e2s$k$/$i$$$Ne(B)  
Versione$B$,$”$C$?$j!"A4A30c$&\>pJs$,F~$C$F$$$?$j$9$k$N$+$He(B  
e$BA[A|$7$F$$$?$N$G$9$,e(B…e$B!#e(B

> > (2) BUFSIZe$B$NCMe(B
> 
> > t.c(1) : error C2065: ‘BUFSIZ’ : e$BDj5A$5$l$F$$$J$$\<1JL;R$G$9!#e(B
> 
> e$B!!$J$s$+I,MW$J%X%C%@$H$+$"$j$^$9!)e(B

#include \<stdio.h\>  
e$B$7$F$b$i$($^$9$+!)e(B

# e$B$5$C$Q$j$o$+$i$J$$e(B…e$B!#e(B

e$B=uED2m5\*e(B

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [August 22, 2007, 9:38pm UTC](https://www.ruby-forum.com/t/test-win32ole/112634/6 "2007-08-22T21:38:14Z")

</div>

artone$B$G$9!#e(B

e$B$(!\<$H!"e(B

> > test\_progid(TestWIN32OLE\_TYPE):
> 
> e$B!!:!=h$G;_$^$j$^$9!%%G%P%C%,!Je(BVCe$B!K$Oe(B win32ole.c e$B$Ne(B 2019 e$B9TL$Ne(B  
> atof() e$B$G;_$^$C$F$k!$$\_$?$$$J$3$H$r8@$C$F$k$s$G$9$,!%e(B  
> e$B$H$$$&$3$H$J$N$G!“JL$N$H$3$m$G%9%?%C%/$r2u$7$F!”$J$s$+$\*$+$7$/$J$C$F$$$ke(B  
> e$B!Je(Btest\_on\_evente$B$b!“e(Btest\_progide$B$HF1$8$/!”$=$N1F6A!K$N$G$O$J$$$G$7$g$&$+!#e(B  
> e$B$“$H!”$3$NLdBj$H$O4X78$J$5$=$&$G$9$,!"e(B1.8.6e$B$N%=!\<%9$r8+$F5$IU$$$?$N$O!"e(B  
> reg\_get\_val(hkey, subkey)  
> HKEY hkey;  
> const char \*subkey;  
> {  
> char buf[BUFSIZ];  
> LONG size\_buf = sizeof(buf);  
> LONG err = RegQueryValue(hkey, subkey, buf, &size\_buf);  
> if (err == ERROR\_SUCCESS) {  
> return rb\_str\_new2(buf);  
> }  
> return Qnil;  
> }  
> e$B$O$^$:$=$&$G$9!#e(B  
> e$B$H$$$&$N$O!"e(BRegQueryValuee$B$Ne(BAPIe$B@bL@$r4]!90zMQ$7$^$9$,!"e(B

If the data has the REG\_SZ, REG\_MULTI\_SZ or REG\_EXPAND\_SZ type, the  
string  
may not have been stored with the proper null-terminating characters.  
For example, if the string data is 12 characters and the buffer is  
larger than that, the function will add the null character and the size  
of the data returned is 13_sizeof(TCHAR) bytes. However, if the buffer  
is 12_sizeof(TCHAR) bytes, the data is stored successfully but does not  
include a terminating null.

e$B$G!“J8;zNsD9$,$T$C$?$je(BBUFSIZe$B$N\>l9g!”=_C\<e(Bnulle$B$r@\_Dj$;$:$K!"e(BERROR\_SUCCESS  
e$B$,JV$k$H$J$C$F$$$^$9!#$=$N0lJ}$G!"e(Bnulle$B$r%3%T!\<$7$?\>l9g$K$O!"e(B&size\_bufe$B$Ke(B  
e$B$Oe(Bnulle$B$NJ,$bF~$k$N$G!"e(Breturn rb\_str\_new(buf, size\_buf);  
e$B$H$9$k$o$1$K$be(B  
e$B$$$+$J$$$G$9$M!#e(B  
char buf[BUFSIZ + 1];  
buf[BUFSIZ] = 0;  
e$B$H$7$F$_$$$F!"e(Brb\_str\_new2(buf);  
e$B$+$J!#e(B

–  
arton [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [August 22, 2007, 9:06pm UTC](https://www.ruby-forum.com/t/test-win32ole/112634/7 "2007-08-22T21:06:09Z")

</div>

e$B!!$5$5$@$G$9!%e(B

Masaki S. wrote:

> e$B$H$j$"$($:!“e(BHKEY\_CLASSES\_ROOT e$B$H$+e(B TypeLibe$B$H$+$O$”$k$C$F$3$H$G$9$M!#e(B  
> a.0e$B$H$$$&$N$OA[Dj$7$F$^$;$s$G$7$?!#e(B  
> e$B$G$b!“e(Batof(“a.0”)e$B$G0[\>o=\*N;$9$k$H$O;W$($J$$$7e(B…e$B!#e(B  
> e$B$R$g$C$H$7$?$iL5Cc6lCc7e?t$NB?$$e(B(BUFSIZe$B$r\>e2s$k$/$i$$$Ne(B)  
> Versione$B$,$”$C$?$j!"A4A30c$&\>pJs$,F~$C$F$$$?$j$9$k$N$+$He(B  
> e$BA[A|$7$F$$$?$N$G$9$,e(B…e$B!#e(B

e$B!!$=$s$JJQ$J$N$O$J$$$h$&$K;W$$$^$9!%e(B

e$B!!:#EY!$5!2q$r:n$C$F0l=o$K%G%P%C%0$7$^$7$g$&$+!%e(B

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [August 22, 2007, 11:23pm UTC](https://www.ruby-forum.com/t/test-win32ole/112634/8 "2007-08-22T23:23:16Z")

</div>

e$B=uED$G$9!#e(B

In message “[ruby-dev:31610] Re: test/win32ole”  
on 07/08/23, SASADA Koichi [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> > e$B$R$g$C$H$7$?$iL5Cc6lCc7e?t$NB?$$e(B(BUFSIZe$B$r\>e2s$k$/$i$$$Ne(B)  
> > Versione$B$,$"$C$?$j!"A4A30c$&\>pJs$,F~$C$F$$$?$j$9$k$N$+$He(B  
> > e$BA[A|$7$F$$$?$N$G$9$,e(B…e$B!#e(B
> 
> e$B!!$=$s$JJQ$J$N$O$J$$$h$&$K;W$$$^$9!%e(B

e$B$=$&$G$9$+!#$h$/$_$?$ie(B progide$B$N%F%9%H$G;_$^$C$F$$$k$\_$?$$e(B  
e$B$G$9$1$I!"e(Batofe$B$N=hM}$O!"e(BWIN32OLE\_TYPE#progide$B$G$Oe(B  
e$B8F$P$l$J$$$s$G$9!#e(B  
WIN32OLE\_EVENT.newe$B$NCf$G8F$P$l$F$k$N$G!"e(Btest\_win32ole\_type.rb  
e$B$Ne(Bsetupe$B$N$H$3$m$G2?EY$b8F$P$l$F$k$s$G$9!#e(B  
e$BB\>$N%F%9%H$,DL$C$F$$$k$H$3$m$r8+$k$H!"e(B  
e$B$d$C$Q$je(Batofe$B$,D\>@$NLdBj$G$OL5$5$=$&$G$9$M!#e(B

> e$B!!:#EY!$5!2q$r:n$C$F0l=o$K%G%P%C%0$7$^$7$g$&$+!%e(B

e$B$=$&$G$9$M!#$=$&$\*$C$7$c$C$F$/$@$5$k$H?46/$$$G$9!#e(B

e$B=uEDe(B e$B2m5\*e(B

---

<div class="post-metadata">

**Author:** ![SASADA\_Koichi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/f1d935/32.png) [@SASADA\_Koichi](https://www.ruby-forum.com/u/SASADA_Koichi)\
**Post date:** [August 22, 2007, 11:49pm UTC](https://www.ruby-forum.com/t/test-win32ole/112634/9 "2007-08-22T23:49:21Z")

</div>

e$B=uED$G$9!#e(B

In message “[ruby-dev:31612] Re: test/win32ole”  
on 07/08/23, arton [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> e$B$(!\<$H!"e(B
> 
> > > test\_progid(TestWIN32OLE\_TYPE):
> > 
> > e$B!!:!=h$G;_$^$j$^$9!%%G%P%C%,!Je(BVCe$B!K$Oe(B win32ole.c e$B$Ne(B 2019 e$B9TL$Ne(B  
> > atof() e$B$G;_$^$C$F$k!$$\_$?$$$J$3$H$r8@$C$F$k$s$G$9$,!%e(B  
> > e$B$H$$$&$3$H$J$N$G!“JL$N$H$3$m$G%9%?%C%/$r2u$7$F!”$J$s$+$\*$+$7$/$J$C$F$$$ke(B  
> > e$B!Je(Btest\_on\_evente$B$b!“e(Btest\_progide$B$HF1$8$/!”$=$N1F6A!K$N$G$O$J$$$G$7$g$&$+!#e(B

e$B$=$N2DG=@-$,9b$=$&$G$9$M!#e(B

> e$B$G!“J8;zNsD9$,$T$C$?$je(BBUFSIZe$B$N\>l9g!”=\*C\<e(Bnulle$B$r@\_Dj$;$:$K!"e(BERROR\_SUCCESS  
> e$B$,JV$k$H$J$C$F$$$^$9!#$=$N0lJ}$G!"e(Bnulle$B$r%3%T!\<$7$?\>l9g$K$O!"e(B&size\_bufe$B$Ke(B  
> e$B$Oe(Bnulle$B$NJ,$bF~$k$N$G!"e(Breturn rb\_str\_new(buf, size\_buf); e$B$H$9$k$o$1$K$be(B  
> e$B$$$+$J$$$G$9$M!#e(B

e$B$(!\<!#$=$&$@$C$?$s$G$9$+!#e(B  
e$B$F$C$-$je(B ERROR\_MORE\_DATA e$B$rJV$9$N$@$H$P$+$j;W$C$F$^$7$?!#e(B

> char buf[BUFSIZ + 1];  
> buf[BUFSIZ] = 0;  
> e$B$H$7$F$\*$$$F!"e(Brb\_str\_new2(buf);  
> e$B$+$J!#e(B

ERROR\_MORE\_DATAe$B$N\>l9g$r9MN8$7$F!"e(B  
buf  
e$B$8$c$J$/$Fe(B1e$B2se(BNULLe$B$K$7$Fe(BRegQueryValuee$B$rEO$7$FI,MW$J%5%$%:$re(B  
e$B\<hF@$7$F!"e(Bbufe$B$re(BALLOCe$B$7$F$b$&0lEY8F$V$H$$$&$N$,NI$$$+$J$H;W$$$^$9!#e(B

e$B$H$$$&$+!“e(BRegQueryValuee$B$,2\<0L8\_49@-$N$?$a$@$1$K;D$C$F$$$k$\_$?$$e(B  
e$B$J$N$G!“e(BRegQueryValueExe$B$G=q$-BX$($h$&$H$7$F$$$F!”$J$s$+e(B  
e$B$&$^$/$$$+$J$/$F!”:rF|$O;~4V@Z$l$K$J$C$F$7$^$$$^$7$?!#e(B

e$B=uEDe(B e$B2m5\*e(B
