You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by Felix Meschberger <fm...@gmail.com> on 2008/01/29 09:02:07 UTC

Re: WebDAV - committed before 401 Unauthorized (was: A quick build question)

Hi Peter,

Hmm, so you say

    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav/default

works, but

    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav

gives you the IllegalStateException in the log ?

This should not be the case as the second URL should be redirected (302)
to the first.

Regards
Felix

Am Montag, den 28.01.2008, 19:21 +0100 schrieb Peter Svensson:
> Ahaaa!  In your previous psot, you misspelled the url :) You said it was
> different, and only /dav, but now I saw that you write /dev/default in this
> post.
> And that worked (releived).
> 
> Back to work
> 
> PS
> 
> On Jan 25, 2008 5:59 PM, Bertrand Delacretaz <bd...@apache.org> wrote:
> 
> > Hi Peter,
> >
> > On Jan 25, 2008 4:58 AM, Peter Svensson <ps...@gmail.com> wrote:
> >
> > > ...2008-01-25 03:30:55.980::WARN:  Committed before 401 Unauthorized
> > > 2008-01-25 03:30:55.981::WARN:  /dav/
> > > java.lang.IllegalStateException: Committed...
> >
> > Once you get a chance to try again, you could try with curl to make
> > sure your login problem is unrelated to the WebDAV client.
> >
> > After starting launchpad-webapp with "mvn package jetty:start",
> >
> >   curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav/default
> >
> > should say
> >
> > HTTP/1.1 200 OK
> > DAV: 1,2,version-control,version-history,label
> > Allow: OPTIONS, GET, HEAD, POST, TRACE, PROPFIND, PROPPATCH, MKCOL,
> > COPY, PUT, DELETE, MOVE, LOCK, UNLOCK, VERSION-CONTROL
> > MS-Author-Via: DAV
> > Content-Length: 0
> > Server: Jetty(6.1.5)
> >
> > The WebDAV service takes a few seconds to startup, about 5 on my macbook
> > pro.
> >
> > -Bertrand
> >


Re: WebDAV - committed before 401 Unauthorized (was: A quick build question)

Posted by Peter Svensson <ps...@gmail.com>.
Thanks Bertrand. I'll try that. meanwhile, I'd recomend to increase the
memory footprint to at least 128M or so as default, since many people will
probably throw in a lot of files when trying Sling out for the first time.

Cheers,
PS

On Jan 29, 2008 10:14 AM, Bertrand Delacretaz <bd...@apache.org>
wrote:

> On Jan 29, 2008 9:43 AM, Peter Svensson <ps...@gmail.com> wrote:
> > ...I'd rather build a stand-alone Launchpad, though, if there's
> > maven options for that....
>
> We don't have a standalone launchpad yet, but "mvn install" in
> launchpad-webapp builds a war file (under target/) that should run in
> any servlet container with JDK 1.5 and servlet API 2.4.
>
> So the best thing for experimenting without having to install too many
> things is probably the "mvn clean package jetty:run" option for now,
> and as Felix indicates MAVEN_OPTS can be used to set JVM and other
> options.
>
> -Bertrand
>

Re: WebDAV - committed before 401 Unauthorized (was: A quick build question)

Posted by Bertrand Delacretaz <bd...@apache.org>.
On Jan 29, 2008 9:43 AM, Peter Svensson <ps...@gmail.com> wrote:
> ...I'd rather build a stand-alone Launchpad, though, if there's
> maven options for that....

We don't have a standalone launchpad yet, but "mvn install" in
launchpad-webapp builds a war file (under target/) that should run in
any servlet container with JDK 1.5 and servlet API 2.4.

So the best thing for experimenting without having to install too many
things is probably the "mvn clean package jetty:run" option for now,
and as Felix indicates MAVEN_OPTS can be used to set JVM and other
options.

-Bertrand

Re: WebDAV - committed before 401 Unauthorized (was: A quick build question)

Posted by Peter Svensson <ps...@gmail.com>.
OK. Thanks! I'd rather build a stand-alone Launchpad, though, if there's
maven options for that. Otherwise I'll        go with the enviroment
variable
Cheers,
PS

On Jan 29, 2008 9:36 AM, Felix Meschberger <fm...@gmail.com> wrote:

> Hi Peter,
>
> Am Dienstag, den 29.01.2008, 09:28 +0100 schrieb Peter Svensson:
> > OK. Thanks!
> > But I'm not so got at maven. Am I correct in assuming that the arguments
> are
> > set somewhere in the pom.xml in the launchpad directory nearby some
> lines
> > saying jett6 .. ??
>
> Ah, didn't realize you are using "mvn jetty:run" on the launchpad-web
> app. Sorry.
>
> If I remember correctly, jetty runs inline in the Maven Java VM in this
> case. You then may set the MAVEN_OPTS environment variables with an Java
> VM arguments you want to specify. For example, I use
>
>   export MAVEN_OPTS="-Xdebug -Xnoagent
> -Xrunjdwp:transport=dt_socket,address=30313,server=y,suspend=n"
>
> when trying to debug maven builds.
>
> Hope, this helps.
>
> Regards
> Felix
>
>
> >
> > cheers,
> > PS
> >
> > On Jan 29, 2008 9:19 AM, Felix Meschberger <fm...@gmail.com> wrote:
> >
> > > Hi Peter,
> > >
> > > Am Dienstag, den 29.01.2008, 09:12 +0100 schrieb Peter Svensson:
> > > > Sorry Felix. I never got to curl. What I did was to try to mount -t
> > > davfs
> > > > ...  and I did get 302 reported as an errro by linux mount, which
> means
> > > it's
> > > > not compatible with handling that, so that's the reason, probably.
> > >
> > > Good note ! Thanks for the clarification, this will certainly flow
> into
> > > the docs.
> > >
> > > >
> > > > When I tried it with /dav/default, it worked fine (of course).
> > > >
> > > > Another thing I wonder is where to set memory limits. When I copy my
> > > project
> > > > into Sling, I always get OutOfMemoryError. Dojo itself is thousands
> of
> > > > files.
> > >
> > > You set this using java runtime arguments -Xmx. If your OOME is caused
> > > by PermGen overruns, you might want to try the -XX:MaxPermSize option.
> > > See [1] for details.
> > >
> > > Regards
> > > Felix
> > >
> > > [1] http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
> > >
> > > >
> > > > Cheers,
> > > > PS
> > > >
> > > > On Jan 29, 2008 9:02 AM, Felix Meschberger <fm...@gmail.com>
> wrote:
> > > >
> > > > > Hi Peter,
> > > > >
> > > > > Hmm, so you say
> > > > >
> > > > >    curl -D - -X OPTIONS
> http://admin:admin@localhost:8080/dav/default
> > > > >
> > > > > works, but
> > > > >
> > > > >    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav
> > > > >
> > > > > gives you the IllegalStateException in the log ?
> > > > >
> > > > > This should not be the case as the second URL should be redirected
> > > (302)
> > > > > to the first.
> > > > >
> > > > > Regards
> > > > > Felix
> > > > >
> > > > > Am Montag, den 28.01.2008, 19:21 +0100 schrieb Peter Svensson:
> > > > > > Ahaaa!  In your previous psot, you misspelled the url :) You
> said it
> > > was
> > > > > > different, and only /dav, but now I saw that you write
> /dev/default
> > > in
> > > > > this
> > > > > > post.
> > > > > > And that worked (releived).
> > > > > >
> > > > > > Back to work
> > > > > >
> > > > > > PS
> > > > > >
> > > > > > On Jan 25, 2008 5:59 PM, Bertrand Delacretaz <
> bdelacretaz@apache.org
> > > >
> > > > > wrote:
> > > > > >
> > > > > > > Hi Peter,
> > > > > > >
> > > > > > > On Jan 25, 2008 4:58 AM, Peter Svensson <ps...@gmail.com>
> > > wrote:
> > > > > > >
> > > > > > > > ...2008-01-25 03:30:55.980::WARN:  Committed before 401
> > > Unauthorized
> > > > > > > > 2008-01-25 03:30:55.981::WARN:  /dav/
> > > > > > > > java.lang.IllegalStateException: Committed...
> > > > > > >
> > > > > > > Once you get a chance to try again, you could try with curl to
> > > make
> > > > > > > sure your login problem is unrelated to the WebDAV client.
> > > > > > >
> > > > > > > After starting launchpad-webapp with "mvn package
> jetty:start",
> > > > > > >
> > > > > > >   curl -D - -X OPTIONS
> > > http://admin:admin@localhost:8080/dav/default
> > > > > > >
> > > > > > > should say
> > > > > > >
> > > > > > > HTTP/1.1 200 OK
> > > > > > > DAV: 1,2,version-control,version-history,label
> > > > > > > Allow: OPTIONS, GET, HEAD, POST, TRACE, PROPFIND, PROPPATCH,
> > > MKCOL,
> > > > > > > COPY, PUT, DELETE, MOVE, LOCK, UNLOCK, VERSION-CONTROL
> > > > > > > MS-Author-Via: DAV
> > > > > > > Content-Length: 0
> > > > > > > Server: Jetty(6.1.5)
> > > > > > >
> > > > > > > The WebDAV service takes a few seconds to startup, about 5 on
> my
> > > > > macbook
> > > > > > > pro.
> > > > > > >
> > > > > > > -Bertrand
> > > > > > >
> > > > >
> > > > >
> > >
> > >
>
>

Re: WebDAV - committed before 401 Unauthorized (was: A quick build question)

Posted by Felix Meschberger <fm...@gmail.com>.
Hi Peter,

Am Dienstag, den 29.01.2008, 09:28 +0100 schrieb Peter Svensson:
> OK. Thanks!
> But I'm not so got at maven. Am I correct in assuming that the arguments are
> set somewhere in the pom.xml in the launchpad directory nearby some lines
> saying jett6 .. ??

Ah, didn't realize you are using "mvn jetty:run" on the launchpad-web
app. Sorry.

If I remember correctly, jetty runs inline in the Maven Java VM in this
case. You then may set the MAVEN_OPTS environment variables with an Java
VM arguments you want to specify. For example, I use

   export MAVEN_OPTS="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=30313,server=y,suspend=n"

when trying to debug maven builds.

Hope, this helps.

Regards
Felix


> 
> cheers,
> PS
> 
> On Jan 29, 2008 9:19 AM, Felix Meschberger <fm...@gmail.com> wrote:
> 
> > Hi Peter,
> >
> > Am Dienstag, den 29.01.2008, 09:12 +0100 schrieb Peter Svensson:
> > > Sorry Felix. I never got to curl. What I did was to try to mount -t
> > davfs
> > > ...  and I did get 302 reported as an errro by linux mount, which means
> > it's
> > > not compatible with handling that, so that's the reason, probably.
> >
> > Good note ! Thanks for the clarification, this will certainly flow into
> > the docs.
> >
> > >
> > > When I tried it with /dav/default, it worked fine (of course).
> > >
> > > Another thing I wonder is where to set memory limits. When I copy my
> > project
> > > into Sling, I always get OutOfMemoryError. Dojo itself is thousands of
> > > files.
> >
> > You set this using java runtime arguments -Xmx. If your OOME is caused
> > by PermGen overruns, you might want to try the -XX:MaxPermSize option.
> > See [1] for details.
> >
> > Regards
> > Felix
> >
> > [1] http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
> >
> > >
> > > Cheers,
> > > PS
> > >
> > > On Jan 29, 2008 9:02 AM, Felix Meschberger <fm...@gmail.com> wrote:
> > >
> > > > Hi Peter,
> > > >
> > > > Hmm, so you say
> > > >
> > > >    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav/default
> > > >
> > > > works, but
> > > >
> > > >    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav
> > > >
> > > > gives you the IllegalStateException in the log ?
> > > >
> > > > This should not be the case as the second URL should be redirected
> > (302)
> > > > to the first.
> > > >
> > > > Regards
> > > > Felix
> > > >
> > > > Am Montag, den 28.01.2008, 19:21 +0100 schrieb Peter Svensson:
> > > > > Ahaaa!  In your previous psot, you misspelled the url :) You said it
> > was
> > > > > different, and only /dav, but now I saw that you write /dev/default
> > in
> > > > this
> > > > > post.
> > > > > And that worked (releived).
> > > > >
> > > > > Back to work
> > > > >
> > > > > PS
> > > > >
> > > > > On Jan 25, 2008 5:59 PM, Bertrand Delacretaz <bdelacretaz@apache.org
> > >
> > > > wrote:
> > > > >
> > > > > > Hi Peter,
> > > > > >
> > > > > > On Jan 25, 2008 4:58 AM, Peter Svensson <ps...@gmail.com>
> > wrote:
> > > > > >
> > > > > > > ...2008-01-25 03:30:55.980::WARN:  Committed before 401
> > Unauthorized
> > > > > > > 2008-01-25 03:30:55.981::WARN:  /dav/
> > > > > > > java.lang.IllegalStateException: Committed...
> > > > > >
> > > > > > Once you get a chance to try again, you could try with curl to
> > make
> > > > > > sure your login problem is unrelated to the WebDAV client.
> > > > > >
> > > > > > After starting launchpad-webapp with "mvn package jetty:start",
> > > > > >
> > > > > >   curl -D - -X OPTIONS
> > http://admin:admin@localhost:8080/dav/default
> > > > > >
> > > > > > should say
> > > > > >
> > > > > > HTTP/1.1 200 OK
> > > > > > DAV: 1,2,version-control,version-history,label
> > > > > > Allow: OPTIONS, GET, HEAD, POST, TRACE, PROPFIND, PROPPATCH,
> > MKCOL,
> > > > > > COPY, PUT, DELETE, MOVE, LOCK, UNLOCK, VERSION-CONTROL
> > > > > > MS-Author-Via: DAV
> > > > > > Content-Length: 0
> > > > > > Server: Jetty(6.1.5)
> > > > > >
> > > > > > The WebDAV service takes a few seconds to startup, about 5 on my
> > > > macbook
> > > > > > pro.
> > > > > >
> > > > > > -Bertrand
> > > > > >
> > > >
> > > >
> >
> >


Re: WebDAV - committed before 401 Unauthorized (was: A quick build question)

Posted by Peter Svensson <ps...@gmail.com>.
OK. Thanks!
But I'm not so got at maven. Am I correct in assuming that the arguments are
set somewhere in the pom.xml in the launchpad directory nearby some lines
saying jett6 .. ??

cheers,
PS

On Jan 29, 2008 9:19 AM, Felix Meschberger <fm...@gmail.com> wrote:

> Hi Peter,
>
> Am Dienstag, den 29.01.2008, 09:12 +0100 schrieb Peter Svensson:
> > Sorry Felix. I never got to curl. What I did was to try to mount -t
> davfs
> > ...  and I did get 302 reported as an errro by linux mount, which means
> it's
> > not compatible with handling that, so that's the reason, probably.
>
> Good note ! Thanks for the clarification, this will certainly flow into
> the docs.
>
> >
> > When I tried it with /dav/default, it worked fine (of course).
> >
> > Another thing I wonder is where to set memory limits. When I copy my
> project
> > into Sling, I always get OutOfMemoryError. Dojo itself is thousands of
> > files.
>
> You set this using java runtime arguments -Xmx. If your OOME is caused
> by PermGen overruns, you might want to try the -XX:MaxPermSize option.
> See [1] for details.
>
> Regards
> Felix
>
> [1] http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
>
> >
> > Cheers,
> > PS
> >
> > On Jan 29, 2008 9:02 AM, Felix Meschberger <fm...@gmail.com> wrote:
> >
> > > Hi Peter,
> > >
> > > Hmm, so you say
> > >
> > >    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav/default
> > >
> > > works, but
> > >
> > >    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav
> > >
> > > gives you the IllegalStateException in the log ?
> > >
> > > This should not be the case as the second URL should be redirected
> (302)
> > > to the first.
> > >
> > > Regards
> > > Felix
> > >
> > > Am Montag, den 28.01.2008, 19:21 +0100 schrieb Peter Svensson:
> > > > Ahaaa!  In your previous psot, you misspelled the url :) You said it
> was
> > > > different, and only /dav, but now I saw that you write /dev/default
> in
> > > this
> > > > post.
> > > > And that worked (releived).
> > > >
> > > > Back to work
> > > >
> > > > PS
> > > >
> > > > On Jan 25, 2008 5:59 PM, Bertrand Delacretaz <bdelacretaz@apache.org
> >
> > > wrote:
> > > >
> > > > > Hi Peter,
> > > > >
> > > > > On Jan 25, 2008 4:58 AM, Peter Svensson <ps...@gmail.com>
> wrote:
> > > > >
> > > > > > ...2008-01-25 03:30:55.980::WARN:  Committed before 401
> Unauthorized
> > > > > > 2008-01-25 03:30:55.981::WARN:  /dav/
> > > > > > java.lang.IllegalStateException: Committed...
> > > > >
> > > > > Once you get a chance to try again, you could try with curl to
> make
> > > > > sure your login problem is unrelated to the WebDAV client.
> > > > >
> > > > > After starting launchpad-webapp with "mvn package jetty:start",
> > > > >
> > > > >   curl -D - -X OPTIONS
> http://admin:admin@localhost:8080/dav/default
> > > > >
> > > > > should say
> > > > >
> > > > > HTTP/1.1 200 OK
> > > > > DAV: 1,2,version-control,version-history,label
> > > > > Allow: OPTIONS, GET, HEAD, POST, TRACE, PROPFIND, PROPPATCH,
> MKCOL,
> > > > > COPY, PUT, DELETE, MOVE, LOCK, UNLOCK, VERSION-CONTROL
> > > > > MS-Author-Via: DAV
> > > > > Content-Length: 0
> > > > > Server: Jetty(6.1.5)
> > > > >
> > > > > The WebDAV service takes a few seconds to startup, about 5 on my
> > > macbook
> > > > > pro.
> > > > >
> > > > > -Bertrand
> > > > >
> > >
> > >
>
>

Re: WebDAV - committed before 401 Unauthorized (was: A quick build question)

Posted by Felix Meschberger <fm...@gmail.com>.
Hi Peter,

Am Dienstag, den 29.01.2008, 09:12 +0100 schrieb Peter Svensson:
> Sorry Felix. I never got to curl. What I did was to try to mount -t davfs
> ...  and I did get 302 reported as an errro by linux mount, which means it's
> not compatible with handling that, so that's the reason, probably.

Good note ! Thanks for the clarification, this will certainly flow into
the docs.

> 
> When I tried it with /dav/default, it worked fine (of course).
> 
> Another thing I wonder is where to set memory limits. When I copy my project
> into Sling, I always get OutOfMemoryError. Dojo itself is thousands of
> files.

You set this using java runtime arguments -Xmx. If your OOME is caused
by PermGen overruns, you might want to try the -XX:MaxPermSize option.
See [1] for details.

Regards
Felix

[1] http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

> 
> Cheers,
> PS
> 
> On Jan 29, 2008 9:02 AM, Felix Meschberger <fm...@gmail.com> wrote:
> 
> > Hi Peter,
> >
> > Hmm, so you say
> >
> >    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav/default
> >
> > works, but
> >
> >    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav
> >
> > gives you the IllegalStateException in the log ?
> >
> > This should not be the case as the second URL should be redirected (302)
> > to the first.
> >
> > Regards
> > Felix
> >
> > Am Montag, den 28.01.2008, 19:21 +0100 schrieb Peter Svensson:
> > > Ahaaa!  In your previous psot, you misspelled the url :) You said it was
> > > different, and only /dav, but now I saw that you write /dev/default in
> > this
> > > post.
> > > And that worked (releived).
> > >
> > > Back to work
> > >
> > > PS
> > >
> > > On Jan 25, 2008 5:59 PM, Bertrand Delacretaz <bd...@apache.org>
> > wrote:
> > >
> > > > Hi Peter,
> > > >
> > > > On Jan 25, 2008 4:58 AM, Peter Svensson <ps...@gmail.com> wrote:
> > > >
> > > > > ...2008-01-25 03:30:55.980::WARN:  Committed before 401 Unauthorized
> > > > > 2008-01-25 03:30:55.981::WARN:  /dav/
> > > > > java.lang.IllegalStateException: Committed...
> > > >
> > > > Once you get a chance to try again, you could try with curl to make
> > > > sure your login problem is unrelated to the WebDAV client.
> > > >
> > > > After starting launchpad-webapp with "mvn package jetty:start",
> > > >
> > > >   curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav/default
> > > >
> > > > should say
> > > >
> > > > HTTP/1.1 200 OK
> > > > DAV: 1,2,version-control,version-history,label
> > > > Allow: OPTIONS, GET, HEAD, POST, TRACE, PROPFIND, PROPPATCH, MKCOL,
> > > > COPY, PUT, DELETE, MOVE, LOCK, UNLOCK, VERSION-CONTROL
> > > > MS-Author-Via: DAV
> > > > Content-Length: 0
> > > > Server: Jetty(6.1.5)
> > > >
> > > > The WebDAV service takes a few seconds to startup, about 5 on my
> > macbook
> > > > pro.
> > > >
> > > > -Bertrand
> > > >
> >
> >


Re: WebDAV - committed before 401 Unauthorized (was: A quick build question)

Posted by Peter Svensson <ps...@gmail.com>.
Sorry Felix. I never got to curl. What I did was to try to mount -t davfs
...  and I did get 302 reported as an errro by linux mount, which means it's
not compatible with handling that, so that's the reason, probably.

When I tried it with /dav/default, it worked fine (of course).

Another thing I wonder is where to set memory limits. When I copy my project
into Sling, I always get OutOfMemoryError. Dojo itself is thousands of
files.

Cheers,
PS

On Jan 29, 2008 9:02 AM, Felix Meschberger <fm...@gmail.com> wrote:

> Hi Peter,
>
> Hmm, so you say
>
>    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav/default
>
> works, but
>
>    curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav
>
> gives you the IllegalStateException in the log ?
>
> This should not be the case as the second URL should be redirected (302)
> to the first.
>
> Regards
> Felix
>
> Am Montag, den 28.01.2008, 19:21 +0100 schrieb Peter Svensson:
> > Ahaaa!  In your previous psot, you misspelled the url :) You said it was
> > different, and only /dav, but now I saw that you write /dev/default in
> this
> > post.
> > And that worked (releived).
> >
> > Back to work
> >
> > PS
> >
> > On Jan 25, 2008 5:59 PM, Bertrand Delacretaz <bd...@apache.org>
> wrote:
> >
> > > Hi Peter,
> > >
> > > On Jan 25, 2008 4:58 AM, Peter Svensson <ps...@gmail.com> wrote:
> > >
> > > > ...2008-01-25 03:30:55.980::WARN:  Committed before 401 Unauthorized
> > > > 2008-01-25 03:30:55.981::WARN:  /dav/
> > > > java.lang.IllegalStateException: Committed...
> > >
> > > Once you get a chance to try again, you could try with curl to make
> > > sure your login problem is unrelated to the WebDAV client.
> > >
> > > After starting launchpad-webapp with "mvn package jetty:start",
> > >
> > >   curl -D - -X OPTIONS http://admin:admin@localhost:8080/dav/default
> > >
> > > should say
> > >
> > > HTTP/1.1 200 OK
> > > DAV: 1,2,version-control,version-history,label
> > > Allow: OPTIONS, GET, HEAD, POST, TRACE, PROPFIND, PROPPATCH, MKCOL,
> > > COPY, PUT, DELETE, MOVE, LOCK, UNLOCK, VERSION-CONTROL
> > > MS-Author-Via: DAV
> > > Content-Length: 0
> > > Server: Jetty(6.1.5)
> > >
> > > The WebDAV service takes a few seconds to startup, about 5 on my
> macbook
> > > pro.
> > >
> > > -Bertrand
> > >
>
>