From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Vyacheslav Gonakhchyan Newsgroups: gmane.emacs.devel Subject: Re: Emacs 24 semantic C++ completion problem Date: Fri, 30 Dec 2011 15:00:17 +0000 Message-ID: References: <4EFCE3A1.7030302@siege-engine.com> <87hb0i9zxt.fsf@engster.org> <878vlu9ss2.fsf@engster.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=e89a8ff24e11b88b7204b5507da1 X-Trace: dough.gmane.org 1325257232 12311 80.91.229.12 (30 Dec 2011 15:00:32 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 30 Dec 2011 15:00:32 +0000 (UTC) To: David Engster , "Eric M. Ludlam" , emacs-devel@gnu.org, Slava Gonakhchyan Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Dec 30 16:00:27 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RgdwY-0005DC-5L for ged-emacs-devel@m.gmane.org; Fri, 30 Dec 2011 16:00:27 +0100 Original-Received: from localhost ([::1]:39319 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgdwW-0004zs-Uk for ged-emacs-devel@m.gmane.org; Fri, 30 Dec 2011 10:00:24 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:39864) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgdwT-0004zb-Fd for emacs-devel@gnu.org; Fri, 30 Dec 2011 10:00:22 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RgdwR-00020t-KC for emacs-devel@gnu.org; Fri, 30 Dec 2011 10:00:21 -0500 Original-Received: from mail-pz0-f41.google.com ([209.85.210.41]:52048) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgdwR-00020d-3g for emacs-devel@gnu.org; Fri, 30 Dec 2011 10:00:19 -0500 Original-Received: by dakl33 with SMTP id l33so11149584dak.0 for ; Fri, 30 Dec 2011 07:00:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=9bFSIvba1zfIgWz7j+kwmTgf1AxxQF5HEfj9Ot0kzDM=; b=d9mGZy08ah5wNrCWmyNVjcC07qT4cOKL++CILcNsXJ5QLTFs0nHWl+SIra9cNrkPgT k48SyLHWbf2lYuAPCR4s0l8t+bd0tOIrs//O3pVmKM9l+TrX1j2xtyfUCtodZ/xyE/jR H5nPQeKfF399wJuUc3jRkq1Bt1coNpSzmu9J0= Original-Received: by 10.68.192.74 with SMTP id he10mr11060955pbc.24.1325257218099; Fri, 30 Dec 2011 07:00:18 -0800 (PST) Original-Received: by 10.68.71.230 with HTTP; Fri, 30 Dec 2011 07:00:17 -0800 (PST) In-Reply-To: <878vlu9ss2.fsf@engster.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.210.41 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:147059 Archived-At: --e89a8ff24e11b88b7204b5507da1 Content-Type: multipart/alternative; boundary=e89a8ff24e11b88b6f04b5507d9f --e89a8ff24e11b88b6f04b5507d9f Content-Type: text/plain; charset=ISO-8859-1 >Could you please provide an example, showing what you're trying to >complete and what member functions you would expect to appear? Attached zip file with project. There are two markers in code(Tut.cpp): ERR1, ERR2. ERR1: many incorrect completion variants(it dumps constants, headers etc from many places - it results in 58KB file). ERR2: error on completion(error 2 from my first message). Unfortunately to reproduce ERR1 you should have Ogre installed. ERR2 should be possible to reproduce on project code. I also tried another simple project setup with vector class from stl. Completion variants were correct there. That leads me to beleive that some defines from Ogre(like OGRE_PLATFORM, _OgreExport, _OgrePrivate) break semantic. So to summarize: *What works:* Ogre::Real - completes fine Ogre::SOME_CONST - completes fine function name or variable name from local buffer - completes fine *What does not work:* *1)* void TutorialApplication::configureTerrainDefaults(Ogre::Light* light) { light-> //a lot of garbage variants } *2)* mRoot is defined in BaseApp.h and its type is visible in echo area. But when trying to complete mRoot's member function in Tut.cpp I get error (error "Cannot find types for `\"mRoot\"'"). I think semantic cannot derive its type. It can understand types of local variables only(and mRoot is defined in another file). *3)* In function main local variable is defined TutorialApplication app. When trying to complete app. I always get (wrong-type-argument semantic-find-tags-by-scope-protection parent semantic-tag-class type) *4) *When trying to complete* *this-> I always get (wrong-type-argument semantic-find-tags-by-scope-protection parent semantic-tag-class type) Regards, Slava On Fri, Dec 30, 2011 at 11:57 AM, David Engster wrote: > Vyacheslav Gonakhchyan writes: > > Using cedet newtrunk helped. I can complete types without a problem. > > Although when trying to complete member functions a lot of variants > appear > > and non of > > them seem to be right. > > Also sometimes I get errors(like in my first message) and on second try > it > > works. > > Could you please provide an example, showing what you're trying to > complete and what member functions you would expect to appear? Please > provide a complete buffer, that means with all #include directives > you're using, since this is where Semantic is looking. > > -David > --e89a8ff24e11b88b6f04b5507d9f Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable >Could you please provide an example, showing what you're trying to<= br> >complete and what member functions you would expect to appear?
Attac= hed zip file with project. There are two markers in code(Tut.cpp): ERR1, ER= R2.
ERR1: many incorrect completion variants(it dumps constants, headers= etc from many places - it results in 58KB file).
ERR2: error on completion(error 2 from my first message).
Unfortunately = to reproduce ERR1 you should have Ogre installed.
ERR2 should be possibl= e to reproduce on project code.

I also tried another simple project = setup with vector class from stl. Completion variants were correct there. That leads me to beleive that some defines from Ogre(like OGRE_PLATFORM, _O= greExport, _OgrePrivate) break semantic.

So to summarize:
What= works:
Ogre::Real - completes fine
Ogre::SOME_CONST - completes = fine
function name or variable name from local buffer - completes fine

What does not work:
1)
void TutorialApplication::configur= eTerrainDefaults(Ogre::Light* light)
{
=A0 light-> //a lot of garb= age variants
}

2)
mRoot is defined in BaseApp.h and its type is visible= in echo area.
But when trying to complete mRoot's member function i= n Tut.cpp I get error
(error "Cannot find types for `\"mRoot\= "'").
I think semantic cannot derive its type. It can understand types of local v= ariables only(and mRoot is defined in another file).

3)
In= function main local variable is defined TutorialApplication app.
When t= rying to complete
app.
I always get
(wrong-type-argument semantic-find-tags-by-scope-p= rotection parent semantic-tag-class type)

4)
When trying t= o complete
this->
I always get
(wrong-type-argument se= mantic-find-tags-by-scope-protection parent semantic-tag-class type)

Regards,
Slava

On Fri, Dec 30, 201= 1 at 11:57 AM, David Engster <deng@randomsample.de> wrote:
Vyacheslav Gonakhchyan writes:
> Using cedet newtrunk helped. I can complete types without a problem. > Although when trying to complete member functions a lot of variants ap= pear
> and non of
> them seem to be right.
> Also sometimes I get errors(like in my first message) and on second tr= y it
> works.

Could you please provide an example, showing what you're trying t= o
complete and what member functions you would expect to appear? Please
provide a complete buffer, that means with all #include directives
you're using, since this is where Semantic is looking.

-David

--e89a8ff24e11b88b6f04b5507d9f-- --e89a8ff24e11b88b7204b5507da1 Content-Type: application/zip; name="proj.zip" Content-Disposition: attachment; filename="proj.zip" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gwtjl4nd0 UEsDBBQDAAAIAKBlnT/HEZieIA0AAEsyAAALAAAAQmFzZUFwcC5jcHDFGmlzGjf0u3+FSmeSxcWY HumB68xgfISpOQokbtrpeORdAaqX1Y6ktUsy6W/v07UnYOw2iTt1vNLTu/X03pO+pJEfJgFBtRMs SCeOm4va3t7h4cHH+NmzNELqY0lZ1G6XBrw7RoP6HoKfNlqOGZNeq97Q38suXhKOs++JTyLSn/Ns 5IpGAbvPvsdEsIT7RHRnc28456TdnkhOo/lrSUOgfdkZ/OJgR2Eyp9EukFOOVynZjLE+jrKhUyIx DcUIRyTMASZcMH6FxRsq6E1IvBkOBUnlWSTylN1HxdFeFCcScOM5yZHss0SQ7PMXsrphmAcwsvd+ 78MntN8/6w34XvNFZ8hz6qqjgIREklR/RylIpsAUKBs62tNwh4djsmR3BDHQIQlnCAuEkTE4CqmQ 4AtcQxrrmZmzOxJJZUIqKRHtNtc4cnOXdqVnfaeB5IKKuuHtXg91QyZI4ADMlGXTeOjRx1T4DWMh qmjdZ9GMzhNOnLqtjtBkwe5BBIIchF6AAopDNkc4ChCNQBcYNEY0nFiBApZu+VuWIB9HSNzSWGtC L0kAloOgTU6EZJx0NW6vjiRDIcNBkZjDJYiUsIGEMvEK8N4TDuQSrunCbwz/3wEjAWIREUjgO6K4 Qwzs1/Rnc+sentbxwUsBkhnCp0oYIG/ChBHd0uzNECcy4RGgkjwhDcU7Rz5o7haGhr8gwXIayC99 pXi6B8UtGNhbi0ZkTkXI5wRLYBtsP8NJKIFSFBAVI6yjoJsVirEQauS5ov48xb+0jnqMrDQZD57h szZNQLUwlLMzGmsK1str4HoOoZVSy2gc8oP+TUIr1PsypIopKeiHj+auyh2r7mp0quO1jWRlv72w us7DNMBSxgl9QAiKn6udSn3lL8UTINOrNlKBkovm0+uLs8HZuNetH316+TVXJqSVJe/qObNnNUD+ TEHHmZBauAxNbRTiFeHwpRzDYRsxQbXrUImwRC9aLaXE3yEAcOKriTz2g5ewR90Kq6c3AMb4t16r 0Wr82KoDaov5krFbdIP9WwS7Dzz84PciqhDmO3INloNvWwpPhfCAYN4NaXwKIRhHPvFeAFDpQAX5 I3KvQ/oJlSqCT4LbdNYdHPUjzWJlh1qFqvAkOQtDwj+T5c85MGKOmpLrG3Vdsrn11nZ7TuQEIggE HxaNJPfqoFqYJkLAvFfb399HPRs83qlIM+xNEAzWjIbVZ7s9wkBQ0UNxaIYFfUeupQ1Ur6IAFNuy MzJot5nQyQ78JniZQU0knNL51OrgJbDXTeAUWHYkLLlJJPB01RucDq9qDfQsXWm4KWBCP/+cfetp 4K5JIwjQ0tNcLPEtuY4x5ebT8JSirzcK6JpCKUc5VjVPQsdGD/kxZws9NtEh3QMGkEWQ5VCwWEgw n38NYUf+rBG5uf2XXp5Quif12PDmL3B7z5CGX25RQ4dppFjNcrd1VPTEo0joFTn8OQJ6j+kcp4vD UG1cL0ttMmk3g9mNPyHSnZhoqTn3YdPGYBntVDkzj4kayDKlXOY2V77Pn5az4SDYJWEr5OZr44aa c4dCrRcBQzPskwFsTXBdh85qz6EtYDVJiN7ME7Cd8HL4p5fXJ8PpdNi/PDufrl0Hm5ytXTHuXbyq LlnQgJh6wdPSlUJcrLa4gH+gwEAzxiHCixhOBG0XvIxDggJTg+il+ZLGBGcEXCyFpmr+bMaJWFxr D6hB4GzGv9Xq26bfbp/+feP01nXsavv0b9un326ffgJT5zSUOsvbCDFi4Qr1WUAURLX8Q8fOqule 1vHZzJY8YjAcnEEymF8PzvlNq9UwdIFChYDewhrlGxwmxPsJEJzA9onggK3tsuDrFqyYMEjF14Ib X3Re6DIt2JbFY01tmM+QWwVEwOG+0lmSO1o/ORPGrG8ouY8Zl2JDjsciqHgsTANBMIOkzMbO3CZ1 WPbRXYyOXWDSCndTWeKj1gGctugJeOOcsyQKuixkict8zYexdKsB/9Vz8aSjnDuXfEKIjiE8IF3K qSJoiaW/AICM80oi19FLxmqFpyczWcYEh55ibw5gvkxweEUDuYBzGx1uBHlF6HwhAeYzeBOIk8Su bVSx46UqdrmdhdgrFwLNOFvaAhjNaEhyljTlKgQQ0O5Mmwr+baqK2Su0pnL2uGCga7DhfIHgOEbC JO0CPcuV05Eyx0ZaKsybVT0JFoJIr7BQdKxog45Lk2pbV04ItQLORXUKrmJi/sLcX6i/bGK3UFJ5 CnNzgUUfugJnIVmCT4tKYe6wAQsaPibkdkD+lpCCeNaDN8hhRe5DLk/7OEb7TgkWlZJHYXocmnab Os3QdJ0+Qz2lJkfj4OUN5C0R4EYUfZEfh6pcjX71FTWSWmmzn1RtgI4evJxRLuRRHkBrMwMAWZjL iYtyODe5AJ+I19UIwF8TIoODu2TGk81GLFMs2dQZJqe9D5+rQ6AjpJWiWip9cn7UJq2GgUfaJWvy dMKwsEJ4nyG2zVkqyJd0BjUyuj49O3l9Ue2Vg1fWuPu+DlQ3rnaUb5M7oFh/ZSBfqgbUA/gexJbi igI620u7xF/o2OyiS9baKqYlUFRxOXaduULqHBJoKCSx/s5nDR/XFusbuFoWZ46M/1zd0m7r24+c ipwspTPKDWtCPuZ8NVR9k7RFDACZDu18vdQW1ADVLp1bmm88ubFSypPXNATctAWzpPESIndI7iAT 9gYn0ICFqNcZ9eAgm0dwbJhCK7e1phDQge1NmwqkPzW4B8myr7GLrHWUJVs4WqVHdVpsCuSpOK92 tz7mQAgSWeobQhBgXnf6m7KqGCbKTNgOu1JoRsEoOIVd0yDSc5Um74ejT+yiM8VTupN+TUgCtT14 lZDWUJppXZQ/Q+ROZpc+XpqzUmFvT7JdW/I8tyS9/doKeHg4IKq1z8DRY+Ulh0kcKEUT7C/A5+6o T8r9DQvpFdovheFS5b1WcCXgUS4YOXAlo7mQsHd61fQna2duw62lA9zuroaK6LmEcNVQTqTiVrCm TezYKdRriqWMmQyvBnEtA+iq3xmYIgEqhe6XqkxuTXLzYC3ZahQyScjD7qC/p/axZGbIFS864z8F PcC9T9qErjf/hrR/d3Jf/1dyq0eR++a/knv3KHLfPYnckFOwHrYU7x9F8cX/QPFxFvz+f6D4OCP+ 8D9QfFevJs2VoP3p04pbshrBCaUiLjKh2rWvdZxGzzCfo/zt/LYwlhfFhqeAqaAUc+YDEX3ELtUR DmRFIXSpNCulATSbAIGOjy033etzG5Ykm8PBbiKRaviuEIOb/eBO3QcFSAdL3SYXpZCasW0wdOyS XG+2Xr4X3cTLxTZeCKgNcbiq5hA/b5L5HLyj0Fh9vzkOa+9RjKZFWV3RrTb8ylVkVUrzaiFQ+Jga LBJqlHBOhyPdU26g1rZ9YdrSXsWRncIe5IqTjK9zaINUOdtCPmsrZuR3tNjUWsxf+WCwGNqvcxbl ruOXLCjdghc2vEqxIRIYupW80/R7h7Hpu8gZy+CSSEDOql8pSHB+KmAua3LcU+iUVV2g2JqFYl28 np7/6NX/aP25xu7mqvv5yfN2XnGWY1UjTbnr7BZUqxiFaSvJ+fB6Ou5d9gZnnXEBTHOtAL8uDt9A Fnp7VGJiupGJjsIC9VNM/QfY6Ax6k+F0PBz1uusZ+XEHRjobGRlAS3U7B3qDPUUHtoDZRPlkNzOc 7GqFD3sld+xDNqbegzxcB+UdV59ewET96MnoUuOuPMWnQrXTsfpTw6pn58g7/ij7eGTwwIUM4FxW d2jhcM8Be/VN+9Eh7l9Phpe9000ucQXtfHVklTwSmIDZFMVVb3x2Pu70zx52/OqaTaRHDEKS2Ep3 NOwNppP/4vLmhqhKo6Seik8X7wuKOo+Xu7rX161t/rU2yXhh/UuZhQjTUZdms+QP751bD5yoeh96 ebsnF5O3k/GvLsHAt9CWcE2HBZMlHtKq+Z7DUd61RRgc+HQJ3Sq40yWBamh7tQxDDS7umn/F89rO DJ1Nup3RWblETatvdJx/U1Z+jqPerakHCJBPKmCFXxGuZr2b09MxgTbcbvnpWrqv40dT1a8W+uwu I5q9tng4LdaE+w6FIl7KjEu8VpY8jV+dxm/nuJEbPUkk+GjvFNHgYUGc7RoA/Qhh8sseL5A2/MeS 6HX8BHlg0XZpDg87wV/w2Kn87gVD2NzQYy++hDFRxbR7zObeR/xeSVNJJ+/VvWgDLfTdZwNCcSwX mis9G5IZDEoWW0bNQ6w+gXPQF966tY1sje1blfWu6ySCni3hNs12xTTWdC5rmYmmJgFw+t901FCE YfOHVdrrCEsJ/Tj9NO2GzFh6y40EhJlAhRkPSu4VokvVO8YgYKIful7SKPm7vlW1qp/4oGYPD4cR vMnwFay62HPk5QJL23ENNHee6qctMY0shL1chVUB1Dai7rqTgBuCaPqMNx8+LUTpAdqmkq70tMte Q+Tfdrn3YfWjRy9MX7Bpi2c/6x7DpQiy13AFEtvIm8eD1SvDfwFQSwMEFAMAAAgAC2ydP0mj8xoa AwAA6wkAAAkAAABCYXNlQXBwLmidVm1P2zAQ/t5fcRPSBAiNfU63SVBAQgPBYIOPyE2uqYdjR35p 103bb9/ZTpO07su0fIl9z3PP3dlnJwd8IgucwMvLOTN4VteC58xyJV+mL4MDQrjEzeDggMtcuALh w12pccQq1Ozd9NOa/VJabhep/UaVt0yyEnWKPShlU+sTx3mt9AbkMUeJ29WQKtTPXBZqnqIjJSe8 vOICPdYHrx8vZyitIfuq+VrWzjbhEvAzLsaK6SIBbpUz6zEei9evmi2WITprXE2KERxywYyBtT2A DGo3phn4MrLsSpPPDTeW1kKfrGKx+FBOwqDUsoyy3gyErFsoyJ1ziybLmtyX2ODXIPplA6BnLdnD meLF0TBAM66tYwL+bOGskLwNStVitVYWc4tFtkIbKyXAoHX1IbESJA+b7DQ2OmmIfKqUWWmk7VSN zDb9vofU25O9giF25MBHeD+E01O4m6HWnHqiwjepX4HGarUIjrvF27NjtvHi4j2gUU7naPbINbz9 pQnFikTU00J1ad+mWzchuDnCXJZfHDosDmk/je37h9Z+CziznX7b2dvFX3Fxr9EYkoSg2foEQXjL dAmkuMnxAQWyf/KkVNKzlGpWHr5Vs06y80pFU9dQyW7nk5713Fmr5PUF8GK7Zijy/0Wb8rffQg3h rPjuSD2EhFzwuqa9Bka9lrbUPKhQU/GflFdU7l/xx6Dn7cJ/k8xalk99ijDGidLYCICZOktvCYd0 yBbAK38+GNXkvBbccOl+HG0LPxLK7Ioe/CLqP2ZwXPnXsGeO98cxVHHQh/q3EBHitNRLShqyioMV Dav9Elbt4RtNyk34vXAllx5td6u75IMhvfK71Pysy6wj9r9gRGvHQ6I1QcbM0DcmD4hvLrrJhEC9 rnTP6HibeyZRkNAFWsZFnA6XSoZVtUAoIga1B71M08Yjp43Sz8w8ccPHAqNf9yxl5sxAHrgwi8xl wxScCUXtWNdILVn0tB+phy6oh9q1820Wfg8onRnP4xLG8xHM3dL1ps36dafo2E+rMOxByz8Lcl4O h4PfFPqAmoFPfA07/+b+AlBLAwQUAwAACABsk54/U05lKscDAAALCQAABwAAAFR1dC5jcHCVVW1z k0AQ/mx+xZrOOODQmFQTNb7MICHKSCASfBvHYSgc5BS4zAG1mVp/u3sHSWybtvZm4N72eXb3dm/v gBZRVscEun5d9ZbdTgd7xmmY6atVRqOwoqwYj/csKieMxmrnrNM5vwb05waUAIkh7EXGpKw4Wy8i UpAtYgtJSeUTzkNaWHmYEuWYsQySjK6+aLAdf9XATTkZj6XMA6B5Kkhu05vQgrTkSsaKFE41kP1a oAFuxtOCVm8yUsSzcFUqjf6W7SFUzeB2KyJWJDSt+caQCUnCOqs2hDZNl9VDyETXGPXokel5A/C9 r5bzFnwXDHc2t03fbIQOX9+ij5OwIrvDbkhzI8wJDw9fl6Sas5IK2daCTyRCmsfKYPTssQbDvgZH g8FIVV/8C8sY+6lXlxHPRy1iMBr1N4idIoeE3MDoTWhZhUVElH5vcEVoeklm2McmpWii5B5j6DHm iIdxIHyxLiuSK6pcMsJVeEwz9IWUYmkZltuldWuqtzACy5lajuWbwVT3grmtO6aqdgDbmfzfbI40 Bds5/i9430Qjphy9Gg41OOz38DD6vadDgdju9grG8zCjJVFwHTeuhh1eQS7jNUv54esmfnJf6VZ4 deSwuyOVZvrrFfk3g7Dzg4nlmYZvuY5uXxKfUE4iGfONXVcEkqQuicEyVvOWuJl8CrMaJ5+XtCKX QIsVieos5NegRLyfaLD5qdL/nauSQs+PKSkaH/cSHCG2/SHB/6T+lGM0bYwfquEX6o0oJ/uRicA0 KUaL9ENNahIreHPLqo2XJDVP0NQHQE7amyr5OMEA3oEV0eIYBa7mheikVwc0AfetZ4oE9aeuN4NX ry4uBJ8t5/FR56ApayBngW3qTqA7k2CGg86u/v+iRcx+leINOEADaCI1IBSCIFpldSm+DjmtCNrQ Nbpw1srdwRJxLSzHF5bocws+02ImCi28s5yFrzuGCUsLT1DbLWhgzxe+B/geGHlsoxuaZFBReVYS yUiLCnLBIwYhTyMNomXI4SGOT759V1s7L1xgUTTBkNGHcBcBYMc/MO03QvuCJMRFWrat4mskvQdi uZcycWXvtRX5aE9FlmJb8DkgZ7RU2pQxTyOyEjowY0CFs7sd7KbNSFnik/eGnSrgfLRtDUgvxTJV Z9mElBGnUoWi9qIAT1VRNejqBZCNbsCiCCyK8P2J73c1mL0J3PfwW/SW4Trol+s1U19fvJ+5E1E6 ttHYtbKK8X7hCwYvX16vYQxd3G+Au3aLxYho6DGu2Yt/w9vU3Xa4vTH9tiDvzejzDf4vUEsDBBQD AAAIAGdknT/2tNFCUwEAABADAAAFAAAAVHV0LmiFkm1LwzAQx9/3UxwbSB2yve9EcPiAMBnq3pes vbYHWRLyUByin92kD6vDOl8lufvd/5L/ZUqFyLGANN06KzUxfqsUp4xZkiKt0mjqsyTwbyCaksi4 yxEmK2bQZ+fVZAheb1FrRmKxKTV2+3l1cx541NKpQEUZZ8bASGtIQLmdP0HTdUhEHxEoTTWzmEQA QTVJel0ud4xvVODMDPYnYbM84j+v0WDDMUA7Kfkxap72SmqL+TLyqVpSDq1lXT7mUpTwfgXNerhc 9hQJsiuOIn9mysQnjWdg281AZ1IUVLqjRXdYMMdtX7imsrIz4GHxRZ033oAx7+Kg2EqTto5x+DpD BTulxcw/MRlKultp9D6/ZSiww8eJB832uCZjPah/kb1rxmp5GBdrPS+CzKu3DDWJ8sWhwzzO/Cxt N7imz32Nwl4A1sGJT/+Aqa+gAhYL+Pe7fwNQSwECPwMUAwAACACgZZ0/xxGYniANAABLMgAACwAA AAAAAAAAACCApIEAAAAAQmFzZUFwcC5jcHBQSwECPwMUAwAACAALbJ0/SaPzGhoDAADrCQAACQAA AAAAAAAAACCApIFJDQAAQmFzZUFwcC5oUEsBAj8DFAMAAAgAbJOeP1NOZSrHAwAACwkAAAcAAAAA AAAAAAAggKSBihAAAFR1dC5jcHBQSwECPwMUAwAACABnZJ0/9rTRQlMBAAAQAwAABQAAAAAAAAAA ACCApIF2FAAAVHV0LmhQSwUGAAAAAAQABADYAAAA7BUAAAAA --e89a8ff24e11b88b7204b5507da1 Content-Type: application/octet-stream; name=".emacs" Content-Disposition: attachment; filename=".emacs" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gwtjq33n1 KGN1c3RvbS1zZXQtdmFyaWFibGVzCiA7OyBjdXN0b20tc2V0LXZhcmlhYmxlcyB3YXMgYWRkZWQg YnkgQ3VzdG9tLgogOzsgSWYgeW91IGVkaXQgaXQgYnkgaGFuZCwgeW91IGNvdWxkIG1lc3MgaXQg dXAsIHNvIGJlIGNhcmVmdWwuCiA7OyBZb3VyIGluaXQgZmlsZSBzaG91bGQgY29udGFpbiBvbmx5 IG9uZSBzdWNoIGluc3RhbmNlLgogOzsgSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSwgdGhleSB3 b24ndCB3b3JrIHJpZ2h0LgogJyhlY2Itb3B0aW9ucy12ZXJzaW9uICIyLjQwIikKICcoZWNiLXBy aW1hcnktc2Vjb25kYXJ5LW1vdXNlLWJ1dHRvbnMgKHF1b3RlIG1vdXNlLTEtLUMtbW91c2UtMSkp CiAnKGluaGliaXQtc3RhcnR1cC1zY3JlZW4gdCkKOyAnKHNlbWFudGljLWMtZGVwZW5kZW5jeS1z eXN0ZW0taW5jbHVkZS1wYXRoIChxdW90ZSAoIi91c3IvaW5jbHVkZSIgIi91c3IvaW5jbHVkZS9P R1JFIiAiL3Vzci9pbmNsdWRlL09HUkUvUGx1Z2lucyIgIi91c3IvaW5jbHVkZS9PR1JFL1RlcnJh aW4iICIvdXNyL2luY2x1ZGUvT0lTIikpKQo7ICcoc2VtYW50aWNkYi1wcm9qZWN0LXJvb3RzIChx dW90ZSAoIi9ob21lL2FyY2hwb2V0L3dvcmsvY3BwL09ncmVUZXJyYWluIikpKQopCihjdXN0b20t c2V0LWZhY2VzCiA7OyBjdXN0b20tc2V0LWZhY2VzIHdhcyBhZGRlZCBieSBDdXN0b20uCiA7OyBJ ZiB5b3UgZWRpdCBpdCBieSBoYW5kLCB5b3UgY291bGQgbWVzcyBpdCB1cCwgc28gYmUgY2FyZWZ1 bC4KIDs7IFlvdXIgaW5pdCBmaWxlIHNob3VsZCBjb250YWluIG9ubHkgb25lIHN1Y2ggaW5zdGFu Y2UuCiA7OyBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lLCB0aGV5IHdvbid0IHdvcmsgcmlnaHQu CiApCgooYXV0b2xvYWQgJ3BocC1tb2RlICJwaHAtbW9kZS5lbCIgIlBocCBtb2RlLiIgdCkKKHNl dHEgYXV0by1tb2RlLWFsaXN0IChhcHBlbmQgJygoIi8qLlwucGhwWzM0NV0/JCIgLiBwaHAtbW9k ZSkpIGF1dG8tbW9kZS1hbGlzdCkpCgo7O0N1c3RvbSBjb2RlCihhZGQtdG8tbGlzdCAnbG9hZC1w YXRoIChleHBhbmQtZmlsZS1uYW1lICJ+Ly5lbWFjcy5kL2xpc3AvIikpCihhZGQtdG8tbGlzdCAn bG9hZC1wYXRoIChleHBhbmQtZmlsZS1uYW1lICJ+L3dvcmsvZW1hY3MvZWNiLyIpKQoKOztDRURF VAoobG9hZC1maWxlIChleHBhbmQtZmlsZS1uYW1lICJ+L3dvcmsvZW1hY3MvY2VkZXRfZGV2ZWwt YnpyL2NlZGV0LWRldmVsLWxvYWQuZWwiKSkKKHNlbWFudGljLWxvYWQtZW5hYmxlLWNvZGUtaGVs cGVycykKKGdsb2JhbC1lZGUtbW9kZSAxKSAgICAgICAgICAgICAgICAgICAgICA7IEVuYWJsZSB0 aGUgUHJvamVjdCBtYW5hZ2VtZW50IHN5c3RlbQoKOztDUFAgcHJvamVjdAooZWRlLWNwcC1yb290 LXByb2plY3QgIk9ncmVUZXJyYWluIgogICAgICAgICAgICAgICAgOmZpbGUgIi9ob21lL2FyY2hw b2V0L3dvcmsvY3BwL09ncmVUZXJyYWluL0NNYWtlTGlzdHMudHh0IgoJCQkJOmluY2x1ZGUtcGF0 aCAnKCIvIikKICAgICAgICAgICAgICAJOnN5c3RlbS1pbmNsdWRlLXBhdGggJygiL3Vzci9pbmNs dWRlL09HUkUiICIvdXNyL2luY2x1ZGUvT0dSRS9QbHVnaW5zIiAiL3Vzci9pbmNsdWRlL09HUkUv VGVycmFpbiIgIi91c3IvaW5jbHVkZS9PSVMiKQogICAgICAgICAgICAgCTpzcHAtdGFibGUgJygg CSgiT0dSRV9QTEFURk9STSIgLiAiT0dSRV9QTEFURk9STV9MSU5VWCIpCgkJCQkJCQkJKCJfT2dy ZUV4cG9ydCIgLiAiIikKCQkJCQkJCQkoIl9PZ3JlUHJpdmF0ZSIgLiAiIikKICAgICAgICAgICAg ICAgICAgICAgICAJCQkoIkNPTlNUIiAuICJjb25zdCIpKSkKCihlZGUtY3BwLXJvb3QtcHJvamVj dCAiQ3BwVGVzdCIKICAgICAgICAgICAgICAgIDpmaWxlICIvaG9tZS9hcmNocG9ldC93b3JrL2Nw cC9DcHBUZXN0L3JlYWRtZSIKCQkJCTppbmNsdWRlLXBhdGggJygiLyIpCiAgICAgICAgICAgICAg CTpzeXN0ZW0taW5jbHVkZS1wYXRoICcoIi91c3IvaW5jbHVkZSIgIi91c3IvaW5jbHVkZS9jKysv NC42LjIiKQogICAgICAgICAgICAgCTpzcHAtdGFibGUgJyggKCJDT05TVCIgLiAiY29uc3QiKSkp CgooZ2xvYmFsLXNyZWNvZGUtbWlub3ItbW9kZSAxKSAgICAgICAgICAgIDsgRW5hYmxlIHRlbXBs YXRlIGluc2VydGlvbiBtZW51Cgo7KHNldHEgZWRlLWxvY2F0ZS1zZXR1cC1vcHRpb25zICcoZWRl LWxvY2F0ZS1nbG9iYWwgZWRlLWxvY2F0ZS1iYXNlKSkKCjsoc2VtYW50aWNkYi1lbmFibGUtZ251 LWdsb2JhbC1kYXRhYmFzZXMgJ2MrKy1tb2RlKQoKKHNldHEtbW9kZS1sb2NhbCBjLW1vZGUKICAg ICAgICAgICAgICAgICAgICAgIHNlbWFudGljZGItZmluZC1kZWZhdWx0LXRocm90dGxlCiAgICAg ICAgICAgICAgICAgICAgICAnKHByb2plY3QgdW5sb2FkZWQgc3lzdGVtIHJlY3Vyc2l2ZSkpCgo7 OyBlY2IgLSBkb2VzIG5vdCB3b3JrIHdpdGggbGF0ZXN0IGNlZGV0Cjs7KHNldHEgc3RhY2stdHJh Y2Utb24tZXJyb3IgdCkgO1dBIGZvciB2b2lkLXZhcmlhYmxlIGVycm9yCjs7KHJlcXVpcmUgJ2Vj YikKCjs7VHVybiBEZWJ1ZyBPTgooc2V0cSBkZWJ1Zy1vbi1lcnJvciB0KQoKOztzZW1hbnRpYyBr ZXkgYmluZGluZ3MKKGRlZnVuIG15LWNlZGV0LWhvb2sgKCkKICAobG9jYWwtc2V0LWtleSBbKGNv bnRyb2wgcmV0dXJuKV0gJ3NlbWFudGljLWlhLWNvbXBsZXRlLXN5bWJvbCkKICAobG9jYWwtc2V0 LWtleSAiXEMtYz8iICdzZW1hbnRpYy1pYS1jb21wbGV0ZS1zeW1ib2wtbWVudSkKICAobG9jYWwt c2V0LWtleSAiXEMtYz4iICdzZW1hbnRpYy1jb21wbGV0ZS1hbmFseXplLWlubGluZSkKICAobG9j YWwtc2V0LWtleSAiXEMtY2oiICdzZW1hbnRpYy1pYS1mYXN0LWp1bXApCiAgKGxvY2FsLXNldC1r ZXkgIlxDLWNoIiAnc2VtYW50aWMtaWEtc2hvdy1kb2MpCiAgKGxvY2FsLXNldC1rZXkgIlxDLWN2 IiAnc2VtYW50aWMtaWEtc2hvdy12YXJpYW50cykKICAobG9jYWwtc2V0LWtleSAiXEMtY3AiICdz ZW1hbnRpYy1hbmFseXplLXByb3RvLWltcGwtdG9nZ2xlKSkKKGFkZC1ob29rICdjLW1vZGUtY29t bW9uLWhvb2sgJ215LWNlZGV0LWhvb2spCgo7KGRlZnVuIG15LWMtbW9kZS1jZWRldC1ob29rICgp CjsgKGxvY2FsLXNldC1rZXkgIi4iICdzZW1hbnRpYy1jb21wbGV0ZS1zZWxmLWluc2VydCkKOyAo bG9jYWwtc2V0LWtleSAiPiIgJ3NlbWFudGljLWNvbXBsZXRlLXNlbGYtaW5zZXJ0KSkKOyhhZGQt aG9vayAnYy1tb2RlLWNvbW1vbi1ob29rICdteS1jLW1vZGUtY2VkZXQtaG9vaykKCg== --e89a8ff24e11b88b7204b5507da1 Content-Type: application/zip; name="proj.zip" Content-Disposition: attachment; filename="proj.zip" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gwtjzt8f2 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 ABQBAABGHgAAAAA= --e89a8ff24e11b88b7204b5507da1--