info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: local tagging


From: Volpe, Christopher R (Research)
Subject: RE: local tagging
Date: Mon, 16 Dec 2002 17:32:29 -0500

Hi folks-
  Last week I inquired about how to do the equivalent of a tag without writing 
to the repository. I
wrote a couple of TCL scripts which I believe do what I want, and I'd like to 
offer them to the cvs
community for your use and solicit feedback from anyone who might be interested 
in them. I'd like to
know if there are any "special cases" that I've neglected to handle, and any 
other opportunities for
improvement. They are attached below.

thanks,
Chris

> -----Original Message-----
> From: Volpe, Christopher R (Research) 
> Sent: Tuesday, December 10, 2002 11:12 AM
> To: 'address@hidden'
> Subject: local tagging
> 
> 
> Hi folks-
>   I'm new to the list, so I apologize if this has been asked. 
> I perused the last few months of
> archived messages, but couldn't find the FAQ referred to on
> http://mail.gnu.org/mailman/listinfo/info-cvs. 
>   
>   Anyway, here's what I'd like to be able to do. I want to 
> have the equivalent functionality of a
> tag, but without actually writing to the repository. That is, 
> I want to record the state of the
> revisions of all the files in my working directory so that I 
> can revert to that state at a later
> time. But I don't want to modify the repository itself, for a 
> couple of reasons:
> 
> 1) The repository is shared by a large community, and the 
> owners don't like the prospect of having a
> user (much less *many* users) creating more than one or two 
> tags a year.
> 2) The functionality needs to be available from a shared 
> testing account that has read-only anonymous
> access to the repository.
> 
> Now, the straightforward solution would be to write a script, 
> or a pair of scripts, that does a "cvs
> status", and parses the output and writes it out in a 
> condensed form, and another that reads this
> condensed form and pulls out all the specified file 
> revisions. However, before I go reinventing the
> wheel, I'd like to know if there exists such a tool already, 
> possibly with more bells and whistles
> than I was planning to implement. Thanks in advance for any 
> information you can provide.
> 
> 
> Chris
> > GE Global Research Center 
> > 
> ______________________________________________________________
> _____________________________________
> > _______________________________________________
> > 
> Dr. Christopher R. Volpe, Ph.D.
> Computer Scientist
> Visualization and Computer Vision Lab 
> Imaging Technologies
> Bldg KW, Room C215
> P.O. Box 8, Schenectady, NY 12301
> 
> (518) 387-7766, Dial Comm: 8*833-7766, Fax: (518) 387-6981
> e-mail: address@hidden    web: http://www.crd.ge.com/~volpecr
> 
> 
> 
> 
> 
> _______________________________________________
> Info-cvs mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/info-cvs
> 


begin 600 restorestate.tcl
M(R%T8VQS:address@hidden(R!&:6QE.B!R97-T;W)E<W1A=&4N=&-L#0HC($%U
M=&AO<address@hidden:7-T;W!H97(@5F]L<&4-"B,@1&5S8W)I<'1I;VXZ(%)E=')I
M979E('1H92!S<&5C:69I960@<F5V:7-I;VYS(&]F(&%L;"!W;W)K:6YG#0HC
M("address@hidden,@8V]R<F5S<&]N9&EN9R!T;R!A(&MN;W=N+6=O;V0@<V%V960@
M<W1A=&4N($EF('1H97)E(`T*(R`@(&%R92!L;V-A;"!M;V1S(&EN('1H92!C
M=7)R96YT('=O<FMI;F<@=F5R<VEO;BP@;6%K92!A(&)A8VMU<"!O9B`-"B,@
M("!T:&address@hidden;F0@<'5L;"address@hidden<F5S:"!C;W!Y('=I=&AO=70@
M=&AE(&QO8V%L(&UO9',-"B,-"FEF('LD87)G8R`A/2`Q('T@>PT*("!E<G)O
M<B`B57-A9V4Z(')E<W1O<F5S=&%T92`\<W1A=&5F:6QE/B(-"GT-"@T*(R!'
M<F%B('1H92!R97!O<VET;W)Y)W,@8F%S92!P871H('-O('address@hidden@8V%N
M('-U8G1R86-T(&ET#0HC(&9R;address@hidden&AE('!A=&@@;address@hidden:"!F:6QE(&EN
M(&]R9&5R('1O(&]B=&%I;B!A(&9I;&4-"B,@<&%T:"address@hidden(&EN
M(&address@hidden(&-O;6UA;F0-"G-E="!R97!F:6QE(%MO<&5N("(N+T-64R]297!O
M<VET;W)Y(B!R70T*<V5T(')E<%]S=')?;&5N(%MG971S("1R97!F:6QE(')E
M<%T-"G-E="!F:7)S="!;97AP<B`D<F5P7W-T<address@hidden<V4@
M)')E<&9I;&4-"@T*(R!"=6EL9"!A;B!I;G1E<FYA;"!S=&%T=7,M9&%T86)A
M<V4-"B,@4W1A<G0@<F5A9&EN9R!T:&4@<W1A='5S(&]F(&5A8V@@9FEL92P@
M;VYE(&%T(&address@hidden&EM90T*<V5T('-T871U<V]U="!;;W!E;B`B?&-V<R!S=&%T
M=7,B(')=#0H-"B,@26YD:6-A=&5S('=H971H97(@;W(@;F]T('1O(&9O<F-E
M(&$@<F4M;&]A9"address@hidden;B!I9B!T:&address@hidden('=O<FMI;F<@<F5V:7-I;VX@
M:7,@=&AE('-A;address@hidden,@=&AE(&YE961E9"!R979I<VEO;@T*<V5T(&9O<F-E
M7W)E;&]A9"`P#0H-"B,@:6YD:6-A=&5S('=H971H97(@;W(@;F]T('=E(&YE
address@hidden&address@hidden'5C:R!A=V%Y('1H92!E>&ES=&EN9R!F:6QE#0HC('-O('1H870@
address@hidden(&]B=&%I;B!A(&-L96%N(&-O<'D@;address@hidden&AE(&9I;&4-"G-E="!T
M=6-K7V%W87D@,`T*#0IW:&EL92![6V5O9B`D<W1A='5S;W5T72`A/2`Q?2![
M#0H@(&=E=',@)'-T871U<V]U="!L:6YE#0H@(`T*("`C($%R92!W92!L;V]K
M:6YG(&%T(&$@;&EN92!O9B!T:&address@hidden;2`B1FEL93H@/&9I;&4^(%-T871U
M<SH@/'-T871U<SXB/PT*("!I9B![6VQI;F1E>"`D;&EN92`P72`]/2`B1FEL
M93HB("8F(%ML:6YD97@@)&QI;F4@,ET@/3T@(E-T871U<SHB?2![#0H@("`@
M<V5T('=O<FMI;F=?9FEL92!;;&EN9&5X("1L:6YE(#%=#0H@("`@<V5T('-T
M870Q(%ML:6YD97@@)&QI;F4@,UT-"B`@("!S970@<W1A=#(@6VQI;F1E>"`D
M;&EN92`T70T*("`@(&EF('LH)'-T870Q(#T]("),;V-A;&QY(B`F)B`D<W1A
M=#(@/3T@(DUO9&EF:65D(address@hidden'P-"B`@("`@("address@hidden"1S=&%T,2`]/2`B1FEL
M92(@)B8@)'-T870R(#T](")H860B*2!\?`T*("`@("`@("`H)'-T870Q(#T]
M(").965D<R(@)B8@)'-T870R(#T](")-97)G92(I?2![#0H@("`@("!S970@
M9F]R8V5?<F5L;V%D(#$-"B`@("`@('-E="!T=6-K7V%W87D@,0T*("`@('T-
M"address@hidden("`@(`T*("`C($ES('1H92!F:6QE(&UI<W-I;F<_#0H@('-E="!S
M=&%T,2!;;&EN9&5X("1L:6YE(#%=#0H@('-E="!S=&%T,B!;;&EN9&5X("1L
M:6YE(#)=#0H@(&EF('LH)'-T870Q(#T](")N;R(@)B8@)'-T870R(#T](")F
M:6QE(BE]('L-"B`@("`C($AA;F1L92!C87-E('=H97)E('1H92!L;V-A;"!F
M:6QE(&AA9"!B965N(&1E;&5T960-"B`@("`C(%1H92!W;W)K:6YG(')E=FES
M:6]N(&UI9VAT(&)E(&-O<G)E8W0L(&)U="!T:&5R92=S('-T:6QL(&YO(&9I
M;&4A#0H@("`@<V5T(&9O<F-E7W)E;&]A9"`Q#0H@('T-"address@hidden@(",@268@
M=V4G<F4@<')O8V5S<VEN9R!T:&4@(E=O<FMI;F<@<F5V:7-I;VXZ(B!L:6YE
M+"address@hidden&AE('=O<FMI;F<@<F5V:7-I;VX-"B`@:68@>UML:6YD97@@)&QI
M;F4@,%T@/3T@(E=O<FMI;F<B("8F(%ML:6YD97@@)&QI;F4@,5T@/3T@(G)E
M=FES:6]N.B)]('L-"B`@("address@hidden:address@hidden;F1E>"`D;&EN
M92`R70T*("!]#0H@(`T*("`C($EF('=E)W)E('!R;V-E<W-I;F<@=&AE(")2
M97!O<VET;W)Y(')E=FES:6]N.B(@;&address@hidden@@8V]N=&%I;G,-"B`@
M(R!T:&address@hidden;"!P871H('-P96,L(&=E="!T:&4@<&%T:"!S<&5C+"!P<F]C
M97-S(&ET+"!A;F0@<F5C;W)D#0H@(",@86QL('1H92!I;F9O#0H@(&EF('M;
M;&EN9&5X("1L:6YE(#!=(#T](")297!O<VET;W)Y(B`F)B!;;&EN9&5X("1L
M:6YE(#%=(#T](")R979I<VEO;CHB?2![#0H@("`@<V5T(')E<%]F:6QE(%ML
M:6YD97@@)&QI;F4@,UT-"B`@("!S970@<F5P7V9I;&5?;&5N(%MS=')I;F<@
M;&5N9W1H("1R97!?9FEL95T-"B`@("!S970@;&%S="!;97AP<B`D<F5P7V9I
M;&5?;&5N("T@,UT-"B`@("address@hidden;<W1R:6YG(')A;F=E("1R97!?
M9FEL92`D9FER<W0@)&QA<W1=#0H@("address@hidden@("`@(R!0<F]C97-S('1H92!C
M;VUP;&5T92!P871H(&YA;address@hidden&\@<F5M;W9E('-L87-H97,@<address@hidden&AA="!T
M:&4-"B`@("`C(')E<W5L="address@hidden@=7-E9"!A<R!A;B!A<G)A>2!I;F1E
M>`T*("`@('-E="!F:6QE7VEN9&5X(%MS=')I;F<@;6%P("(O(%\B("1F:6QE
M70T*#0H@("`@<V5T(&%R<F%Y7W9A;'5E("(D=V]R:VEN9U]R978@)&9O<F-E
M7W)E;&]A9"`D='5C:U]A=V%Y(@T*("`@('-E="!S=&%T=7-?9&%T86)A<V4H
M)&9I;&5?:address@hidden("1A<G)A>5]V86QU90T*("`@('-E="!F;W)C95]R96QO
M860@,`T*("`@('-E="!T=6-K7V%W87D@,`T*("!]#0I]#0H-"B,@5$-,('-E
M96US('1O(&-O;7!L86EN(&%B;W5T(&-L;W-I;F<@:6YP=70@<&EP97,@=&AA
M="!H879E#0HC(&%L<F5A9'D@<F5A8VAE9"!%3T8-"B-C;&]S92`D<W1A='5S
M;W5T#0H-"G-E="!S=&%T969I;&address@hidden@6VQI;F1E>"`D87)G=B`P72!R
M70T*#0HC(%-K:7`@;W9E<B!T:&4@:&5A9&5R+V-O;6UE;G0@;&EN90T*9V5T
M<R`D<W1A=&5F:6QE(&QI;F4-"@T*=VAI;&4@>UME;V8@)'-T871E9FEL95T@
M(3T@,7T@>PT*("!G971S("1S=&%T969I;&4@;&EN90T*("!I9B![6VQL96YG
M=&@@)&QI;F5=(#T](#)]('L-"B`@("`C($]K+"!W92!H879E(&address@hidden:60@
M;&EN92!I;B!T:&4@<W1A=&5F:6QE("AI+F4N(&YO="!T:&4-"B`@("`C(&9I
M;F%L(&5M<'1Y(&QI;F4I+"!S;R!P<F]C97-S(&ET+B`-"B`@("address@hidden
M92!;;&EN9&5X("1L:6YE(#!=#0H@("`@<V5T(')E=B!;;&EN9&5X("1L:6YE
M(#%=#0H@("address@hidden@("`@(R!/:RP@;&]O:R!U<"!T:&ES(&9I;&4@:6X@;W5R
M(&1A=&%B87-E+"!I9B!P<F5S96YT#0H@("`@<V5T(&9I;&5?:6YD97@@6W-T
M<FEN9R!M87`@(address@hidden(@)&9I;&5=#0H@("`@:68@>UMA<G)A>2!N86UE<R!S
M=&%T=7-?9&%T86)A<V4@)&9I;&5?:6YD97A=("$]("(B('T@>PT*("`@("`@
M<V5T(&%R<F%Y7W9A;'5E("1S=&%T=7-?9&%T86)A<V4H)&9I;&5?:address@hidden
M#0H@("`@("address@hidden:address@hidden;F1E>"`D87)R87E?=F%L=64@
M,%T-"B`@("`@('-E="!F;W)address@hidden;F1E>"`D87)R87E?=F%L
M=64@,5T-"B`@("`@('-E="address@hidden;F1E>"`D87)R87E?=F%L
M=64@,ET-"B`@("!](&5L<V4@>PT*("`@("`@(R!)9B!I="!I<R!N;W0@:6X@
M=&AE(&1A=&%B87-E+"!T:&5N(&-V<R!S=&%T=7,@9&]E<VXG="!K;F]W#0H@
M("`@("`C(&%B;W5T(&ET+"!W:&EC:"!M96%N<R!I="!M87D@:&%V92!B965N
M(&]F9FEC:6%L;"!R96UO=F5D(&%N9`T*("`@("`@(R!P;&%C960@:address@hidden&AE
M(&%T=&EC+"!S;R!W92!W:6QL(&address@hidden&address@hidden@82!R92UL;V%D#0H@
M("`@("!P=71S(")&:6QE("1F:6QE(&YO(&QO;F=E<B!I;B!T:&4@<F5P;W-I
M=&]R>2XB#0H@("`@("address@hidden:address@hidden'5M;7D-"B`@("`@('-E
M="!T=6-K7V%W87D@,`T*("`@("`@<V5T(&9O<F-E7W)E;&]A9"`Q#0H@("`@
M?0T*("`@(`T*("`@(",@5'5C:R!A=V%Y(&%N>2!F:6QE<R!W:71H(&-H86YG
M97,@address@hidden&]N)address@hidden"!T;R!B92`-"B`@("`C('!E<FUA;F5N=&QY(&QO
M<W0-"B`@("!I9B![)'1U8VM?87=A>2`]/2`Q?2![#0H@("`@("!F:6QE(')E
M;F%M92`M9F]R8V4@)&9I;&4@)&9I;&4N8FMP#0H@("address@hidden("`@("`@("`-
M"B`@("`C($-H96-K(&%N9"!S964@:address@hidden@;F5E9"!T;R!G<F%B(&address@hidden&EF
M9F5R96YT(')E=FES:6]N(&]F('1H92!F:6QE#0H@("`@:68@>R`H)'=O<FMI
M;F=?<F5V("$]("1R978I('Q\("@D9F]R8V5?<F5L;V%D(#T](#$I('T@>PT*
M("`@(`T*("`@("`@(R!!;FYO=6YC92!T:&address@hidden;6%N9"!S;R!T:&%T('1H
M92!U<V5R('-E97,@=VAA="!I<R!H87!P96YI;F<-"B`@("`@('!U=',@(F-V
M<R!U<&1A=&address@hidden("UR("1R978@)&9I;&4B#0H@("address@hidden@("`@("`C($=E
M="!T:&address@hidden@("`@("address@hidden&]U="!;97AE
M8R!C=G,@=7!D871E("U!9"`M<B`D<F5V("1F:6QE70T*("`@("`@<'5T<R`D
M8W9S7W-T9&]U=`T*("`@('address@hidden@("`@("!P=71S("(D9FEL95QT
M(&ES(&%L<F5A9'address@hidden@<F5V:7-I;VX@)')E=B(-"B`@("!]#0H@("address@hidden@
<('address@hidden"F-L;W-E("1S=&%T969I;&4-"@==
`
end

begin 600 tagstate.tcl
M(R%T8VQS:address@hidden(R!&:6QE.B!486=S=&%T92YT8VP-"B,@075T:&]R
M.B!#:')I<W1O<&AE<B!6;VQP90T*(R!$97-C<FEP=&EO;address@hidden;W)D('1H
M92!R979I<VEO;G,@;address@hidden:"!F:6QE(&EN(&UY('=O<FMI;F<@9&ER96-T
M;W)Y#0HC("`@<address@hidden&AA="!W92!C86X@<F5S=&]R92!T;R!A(&MN;W=N+6=O
M;V0@<W1A=&address@hidden@82!L871E<B!T:6UE+B!4:&ES(&ES#0HC("address@hidden&]N92!W
M:71H;W5T('1A9V=I;F<@=&AE(')E<&]S:71O<GDL('-O('1H870@<F5A9"UO
M;FQY('5S97)S(&-A;@T*(R`@(&1O(&ET+"!A;F0@<address@hidden&AA="!L;W1S(&]F
M('5S97)S(&1O;B=T(&-L=71T97(@address@hidden&AE(')E<&]S:71O<address@hidden:`T*
M(R`@('1A9W,@=&AA="!N;R!O;address@hidden<R!T;R!K;F]W(&%B;W5T
address@hidden(PT*:68@>R1A<F=C(#X@,B!]('L-"address@hidden)R;W(@(E5S86=E.B!T86=S
M=&%T92`\<W1A=&5F:6QE/B`_/&-O;6UE;G0^/R(-"GT-"@T*(R!'<F%B('1H
M92!C;VUM96YT(&EF('1H92!U<V5R('-U<'!L:65D(&]N90T*<V5T(&-O;6UE
M;address@hidden;F1E>"`D87)G=B`Q70T*#0HC(address@hidden&AE(&9I;&address@hidden&AA="=S
M(&=O:6YG('1O(')E8V]R9"!T:&4@<W1A=&4@;address@hidden(&]U<B!W;W)K:6YG
M(&9I;&5S#0IS970@<W1A=&5F:6QE(%MO<&5N(%ML:6YD97@@)&%R9W8@,%T@
M=UT-"@T*(R!'<F%B('1H92!R97!O<VET;W)Y)W,@8F%S92!P871H('-O('1H
address@hidden@8V%N('-U8G1R86-T(&ET#0HC(&9R;address@hidden&AE('!A=&@@;address@hidden
M:"!F:6QE(&EN(&]R9&5R('1O(&]B=&%I;B!A(&9I;&4-"B,@<&%T:"!W92!C
address@hidden(&EN(&address@hidden(&-O;6UA;F0-"G-E="!R97!F:6QE(%MO<&5N("(N
M+T-64R]297!O<VET;W)Y(B!R70T*<V5T(')E<%]S=')?;&5N(%MG971S("1R
M97!F:6QE(')E<%T-"G-E="!F:7)S="!;97AP<B`D<F5P7W-T<address@hidden
M70T*8VQO<V4@)')E<&9I;&4-"@T*(R!3=&%R="!R96%D:6YG('1H92!S=&%T
M=7,@;address@hidden:"!F:6QE+"!O;address@hidden@82!T:6UE#0IS970@<W1A='5S;W5T
M(%MO<&5N(")\8W9S('-T871U<R(@<ET-"@T*(R!7<address@hidden:6UP
M;&4@:&5A9&5R(&9O<B!S=&%T969I;&4@:61E;G1I9FEC871I;VX@<'5R<&]S
M97,-"G!U=',@)'-T871E9FEL92`B4W1A=&5F:6QE(&address@hidden;V-K
M(&9O<FUA="!;8VQO8VL@<V5C;VYD<UU=.B`D8V]M;65N="(-"@T*=VAI;&4@
M>UME;V8@)'-T871U<V]U=%T@(3T@,7T@>PT*("!G971S("1S=&%T=7-O=70@
M;&EN90T*("`-"B`@(R!#:&5C:R!A;F0@<V5E(&EF('1H92!F:6QE(&ES(&QO
M8V%L;'D@;6]D:69I960@;W(@:&%S(&-O;F9L:6-T<PT*("`C('-O('1H870@
address@hidden('=A<address@hidden&AE('5S97(@86)address@hidden;F=E<R!T:&%T(&%R92!N
M;W0-"B`@(R!B96EN9R!R96-O<F1E9`T*("!I9B![6VQI;F1E>"`D;&EN92`P
M72`]/2`B1FEL93HB("8F(%ML:6YD97@@)&QI;F4@,ET@/3T@(E-T871U<SHB
M?2![#0H@("`@<V5T('=O<FMI;F=?9FEL92!;;&EN9&5X("1L:6YE(#%=#0H@
M("`@<V5T('-T870Q(%ML:6YD97@@)&QI;F4@,UT-"B`@("!S970@<W1A=#(@
M6VQI;F1E>"`D;&EN92`T70T*("`@(&EF('LH)'-T870Q(#T]("),;V-A;&QY
M(B`F)B`D<W1A=#(@/3T@(DUO9&EF:65D(address@hidden'P-"B`@("`@("address@hidden"1S=&%T
M,2`]/2`B1FEL92(@)B8@)'-T870R(#T](")H860B*2!\?`T*("`@("`@("`H
M)'-T870Q(#T](").965D<R(@)B8@)'-T870R(#T](")-97)G92(I?2![#0H@
M("`@("!P=71S(")787)N:6YG(2!&:6QE("1W;W)K:6YG7V9I;&4@:&%S('5N
M8V]M;6ET=&5D(&UO9&EF:6-A=&EO;G,B#0H@("address@hidden("!]#0H@("address@hidden@
M(",@address@hidden<F4@<')O8V5S<VEN9R!T:&4@(E=O<FMI;F<@<F5V:7-I;VXZ
M(B!L:6YE+"address@hidden&AE('=O<FMI;F<@<F5V:7-I;VX-"B`@:68@>UML:6YD
M97@@)&QI;F4@,%T@/3T@(E=O<FMI;F<B("8F(%ML:6YD97@@)&QI;F4@,5T@
M/3T@(G)E=FES:6]N.B)]('L-"B`@("!S970@<F5V(%ML:6YD97@@)&QI;F4@
M,ET-"address@hidden("`-"B`@(R!)9B!W92=R92!P<F]C97-S:6YG('1H92`B4F5P
M;W-I=&]R>2!R979I<VEO;CHB(&QI;F4L('=H:6-H(&-O;G1A:6YS#0H@(",@
M=&AE(&9U;&P@<&%T:"!S<&5C+"address@hidden&AE('!A=&@@<W!E8RP@<')O8V5S
M<R!I="address@hidden(')E8V]R9`T*("`C(&%L;"!T:&4@:6YF;PT*("!I9B![6VQI
M;F1E>"`D;&EN92`P72`]/2`B4F5P;W-I=&]R>2(@)address@hidden;F1E>"`D;&EN
M92`Q72`]/2`B<F5V:7-I;VXZ(GT@>PT*("`@('-E="!R97!?9FEL92!;;&EN
M9&5X("1L:6YE(#-=#0H@("`@<V5T(')E<%]F:6QE7VQE;B!;<W1R:6YG(&QE
M;F=T:"`D<F5P7V9I;&5=#0H@("`@<V5T(&QA<address@hidden<'(@)')E<%]F:6QE
M7VQE;B`M(#-=#0H@("`@<V5T(&9I;&address@hidden<FEN9R!R86YG92`D<F5P7V9I
M;&4@)&9I<G-T("1L87-T70T*("`@('!U=',@(D9I;&4@)'=O<FMI;F=?9FEL
M92!<=&ES(&%T(')E=FES:6]N("1R978B#0H@("`@<'5T<R`D<W1A=&5F:6QE
M("(D9FEL92`D<F5V(@T*("!]#0I]#0H-"B,@5$-,('-E96US('1O(&-O;7!L
M86EN(&%B;W5T(&-L;W-I;F<@:6YP=70@<&EP97,@=&AA="!H879E#0HC(&%L
M<F5A9'D@<F5A8VAE9"!%3T8-"B-C;&]S92`D<W1A='5S;W5T#0H-"F-L;W-E
/("1S=&%T969I;&4-"@T*
`
end



reply via email to

[Prev in Thread] Current Thread [Next in Thread]