Produced by Araxis Merge on Fri Jun 13 14:30:56 2008 UTC. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a reasonably standards compliant browser such as the latest version of Firefox or Internet Explorer. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | C:\devel_jahia\corp_V2TemplatesSP3\src\jsp\common | common_vars.inc | Fri Jun 13 14:29:26 2008 UTC |
| 2 | C:\devel_jahia\corp_V2TemplatesSP4\src\jsp\common | common_vars.inc | Fri Jun 13 14:30:13 2008 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 4 | 364 |
| Changed | 2 | 9 |
| Inserted | 1 | 1 |
| Removed | 0 | 0 |
| Whitespace | All differences in whitespace within lines are ignored |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
| 1 | <%-- | 1 | <%-- | |||
| 2 | Copyright 2002-2006 Jahia Ltd | 2 | Copyright 2002-2006 Jahia Ltd | |||
| 3 | 3 | |||||
| 4 | Licensed u nder the J AHIA COMMO N DEVELOPM ENT AND DI STRIBUTION LICENSE ( JCDDL), | 4 | Licensed u nder the J AHIA COMMO N DEVELOPM ENT AND DI STRIBUTION LICENSE ( JCDDL), | |||
| 5 | Version 1. 0 (the "Li cense"), o r (at your option) a ny later v ersion; yo u may | 5 | Version 1. 0 (the "Li cense"), o r (at your option) a ny later v ersion; yo u may | |||
| 6 | not use th is file ex cept in co mpliance w ith the Li cense. You should ha ve | 6 | not use th is file ex cept in co mpliance w ith the Li cense. You should ha ve | |||
| 7 | received a copy of t he License along wit h this pro gram; if n ot, you ma y obtain | 7 | received a copy of t he License along wit h this pro gram; if n ot, you ma y obtain | |||
| 8 | a copy of the Licens e at | 8 | a copy of the Licens e at | |||
| 9 | 9 | |||||
| 10 | http://ww w.jahia.or g/license/ | 10 | http://ww w.jahia.or g/license/ | |||
| 11 | 11 | |||||
| 12 | Unless req uired by a pplicable law or agr eed to in writing, s oftware | 12 | Unless req uired by a pplicable law or agr eed to in writing, s oftware | |||
| 13 | distribute d under th e License is distrib uted on an "AS IS" B ASIS, | 13 | distribute d under th e License is distrib uted on an "AS IS" B ASIS, | |||
| 14 | WITHOUT WA RRANTIES O R CONDITIO NS OF ANY KIND, eith er express or implie d. | 14 | WITHOUT WA RRANTIES O R CONDITIO NS OF ANY KIND, eith er express or implie d. | |||
| 15 | See the Li cense for the specif ic languag e governin g permissi ons and | 15 | See the Li cense for the specif ic languag e governin g permissi ons and | |||
| 16 | limitation s under th e License. | 16 | limitation s under th e License. | |||
| 17 | --%><% | 17 | --%><% | |||
| 18 | 18 | |||||
| 19 | /********* ********** ********** ********** ********** ********** ********** *********/ | 19 | /********* ********** ********** ********** ********** ********** ********** *********/ | |||
| 20 | /* list of common va riables us ed in this set of te mplate */ | 20 | /* list of common va riables us ed in this set of te mplate */ | |||
| 21 | /********* ********** ********** ********** ********** ********** ********** *********/ | 21 | /********* ********** ********** ********** ********** ********** ********** *********/ | |||
| 22 | 22 | |||||
| 23 | org.apache .log4j.Log ger logger = | 23 | org.apache .log4j.Log ger logger = | |||
| 24 | org.ap ache.log4j .Logger.ge tLogger(ge tClass()); | 24 | org.ap ache.log4j .Logger.ge tLogger(ge tClass()); | |||
| 25 | //long tt1 =System.cu rrentTimeM illis(); | 25 | //long tt1 =System.cu rrentTimeM illis(); | |||
| 26 | //logger.d ebug("---- ---------- ---------- ---------- ---------- ---------- -----"); | 26 | //logger.d ebug("---- ---------- ---------- ---------- ---------- ---------- -----"); | |||
| 27 | 27 | |||||
| 28 | JahiaData jData = (J ahiaData) request.ge tAttribute ( "org.jah ia.data.Ja hiaData" ) ; | 28 | JahiaData jData = (J ahiaData) request.ge tAttribute ( "org.jah ia.data.Ja hiaData" ) ; | |||
| 29 | request.se tAttribute ("JahiaDat a",jData); | |||||
| 29 | HashMap en gineMap = (HashMap) request.ge tAttribute ( "org.jah ia.engines .EngineHas hMap" ); | 30 | HashMap en gineMap = (HashMap) request.ge tAttribute ( "org.jah ia.engines .EngineHas hMap" ); | |||
| 30 | String con textPath = request.g etContextP ath(); | 31 | String con textPath = request.g etContextP ath(); | |||
| 31 | 32 | |||||
| 32 | // get the parambean | 33 | // get the parambean | |||
| 33 | ParamBean jParams = jData.para ms(); | 34 | ParamBean jParams = jData.para ms(); | |||
| 34 | // get the entry loa d request | 35 | // get the entry loa d request | |||
| 35 | EntryLoadR equest en tryLoadReq uest = jPa rams.getEn tryLoadReq uest(); | 36 | EntryLoadR equest en tryLoadReq uest = jPa rams.getEn tryLoadReq uest(); | |||
| 36 | 37 | |||||
| 37 | // get the operation mode | 38 | // get the operation mode | |||
| 38 | String ope rationMode = jParams .getOperat ionMode(); | 39 | String ope rationMode = jParams .getOperat ionMode(); | |||
| 39 | 40 | |||||
| 40 | 41 | |||||
| 41 | // get the site and siteId | 42 | // get the site and siteId | |||
| 42 | JahiaSite jahiaSite = jParams. getSite(); | 43 | JahiaSite jahiaSite = jParams. getSite(); | |||
| 43 | int siteId = jParams .getSiteID (); | 44 | int siteId = jParams .getSiteID (); | |||
| 44 | 45 | |||||
| 45 | // get the current u ser | 46 | // get the current u ser | |||
| 46 | JahiaUser user = jPa rams.getUs er(); | 47 | JahiaUser user = jPa rams.getUs er(); | |||
| 47 | 48 | |||||
| 48 | //get the locale | 49 | //get the locale | |||
| 49 | String lan guageCode = jParams. getLocale( ).toString (); | 50 | String lan guageCode = jParams. getLocale( ).toString (); | |||
| 50 | 51 | |||||
| 51 | // generat e a bypass Url URL | 52 | // generat e a bypass Url URL | |||
| 52 | String sav edCacheSta tus = jPar ams.getCac heStatus() ; | 53 | String bypassUrl = jParams.co mposePageU rl UsingCache Mode (jData.pag e() , ParamB e an.CACHE_B YPASS ); | |||
| 53 | jParams.se tCacheStat us(ParamBe an.CACHE_B YPASS); | |||||
| 54 |
String
bypassUrl
=
jParams.co
mposePageU
rl
|
|||||
| 55 | // generat e a cacheo ffonce URL | 54 | // generat e a cacheo ffonce URL | |||
| 56 |
|
55 | String actionURL = jParams. compo se PageUrlUsi ng Cache Mode(jD at a.page ( ), ParamBean. CACHE_OFFO NCE); | |||
| 57 | String act ionURL = j Params.com posePageUr l(jData.pa ge().getID ()); | |||||
| 58 | //restore cachestatu s | |||||
| 59 | jParams.se tCacheStat us(savedCa cheStatus) ; | |||||
| 60 | 56 | |||||
| 61 | // get the context u rl | 57 | // get the context u rl | |||
| 62 | String con textURL = jData.gui( ).drawHttp JspContext (request); | 58 | String con textURL = jData.gui( ).drawHttp JspContext (request); | |||
| 63 | String con textUrl = contextURL ; | 59 | String con textUrl = contextURL ; | |||
| 64 | 60 | |||||
| 65 | // get the home page ID | 61 | // get the home page ID | |||
| 66 | int homePa geId = jDa ta.gui().g etContentH omePage(). getID(); | 62 | int homePa geId = jDa ta.gui().g etContentH omePage(). getID(); | |||
| 67 | 63 | |||||
| 68 | // get the current p age ID and content p age | 64 | // get the current p age ID and content p age | |||
| 69 | int curren tPageId = jData.page ().getID() ; | 65 | int curren tPageId = jData.page ().getID() ; | |||
| 70 | ContentPag e contentP age = Cont entPage.ge tPage(curr entPageId) ; | 66 | ContentPag e contentP age = Cont entPage.ge tPage(curr entPageId) ; | |||
| 71 | 67 | |||||
| 72 | 68 | |||||
| 73 | //logger.d ebug("Curr ent user: " + user.g etUsername ()); | 69 | //logger.d ebug("Curr ent user: " + user.g etUsername ()); | |||
| 74 | // isAdmin return tr ue if curr ent user i s an admin istrator | 70 | // isAdmin return tr ue if curr ent user i s an admin istrator | |||
| 75 | boolean is Admin = us er.isAdmin Member( si teId ); | 71 | boolean is Admin = us er.isAdmin Member( si teId ); | |||
| 76 | 72 | |||||
| 77 | // isEditM ode return true if c urrent mod e is edit | 73 | // isEditM ode return true if c urrent mod e is edit | |||
| 78 | boolean is EditMode = jData.gui ().isEditM ode(); | 74 | boolean is EditMode = jData.gui ().isEditM ode(); | |||
| 79 | 75 | |||||
| 80 | // isLogge d() return true if u ser is log ged | 76 | // isLogge d() return true if u ser is log ged | |||
| 81 | boolean is Logged = j Data.gui() .isLogged( ); | 77 | boolean is Logged = j Data.gui() .isLogged( ); | |||
| 82 | 78 | |||||
| 83 | // hasWrit eAccess re turn true if current user has write acce ss on curr ent page | 79 | // hasWrit eAccess re turn true if current user has write acce ss on curr ent page | |||
| 84 | boolean ha sWriteAcce ss = jData .page().ch eckWriteAc cess(user) ; | 80 | boolean ha sWriteAcce ss = jData .page().ch eckWriteAc cess(user) ; | |||
| 85 | 81 | |||||
| 86 | // hasAdmi nAccess re turn true if current user has admin acce ss on curr ent page | 82 | // hasAdmi nAccess re turn true if current user has admin acce ss on curr ent page | |||
| 87 | boolean ha sAdminAcce ss = jData .page().ch eckAdminAc cess(user) ; | 83 | boolean ha sAdminAcce ss = jData .page().ch eckAdminAc cess(user) ; | |||
| 88 | 84 | |||||
| 89 | // hasRead Access ret urn true i f current user has r ead access on curren t page | 85 | // hasRead Access ret urn true i f current user has r ead access on curren t page | |||
| 90 | boolean ha sReadAcces s = jData. page().che ckReadAcce ss(user); | 86 | boolean ha sReadAcces s = jData. page().che ckReadAcce ss(user); | |||
| 91 | 87 | |||||
| 92 | // Resourc e Bundle D efinition | 88 | // Resourc e Bundle D efinition | |||
| 93 | //String r esBundleID = jParams .getSite() .getSiteKe y() + "_Co rporate_po rtal_templ ates_v2"; | 89 | //String r esBundleID = jParams .getSite() .getSiteKe y() + "_Co rporate_po rtal_templ ates_v2"; | |||
| 94 | // dont pu t any dyna mic and si te related data in t his bundle ID, or be ware... | 90 | // dont pu t any dyna mic and si te related data in t his bundle ID, or be ware... | |||
| 95 | String res BundleID = "CORPORAT E_PORTAL_T EMPLATES_V 2"; | 91 | String res BundleID = "CORPORAT E_PORTAL_T EMPLATES_V 2"; | |||
| 96 | StringBuff er resBund leDef = ne w StringBu ffer("<jah ia-res-bun dle id="); | 92 | StringBuff er resBund leDef = ne w StringBu ffer("<jah ia-res-bun dle id="); | |||
| 97 | resBundleD ef.append( resBundleI D); | 93 | resBundleD ef.append( resBundleI D); | |||
| 98 | resBundleD ef.append( " resbundl e=jahiatem plates.Cor porate_por tal_templa tes_v2>"); | 94 | resBundleD ef.append( " resbundl e=jahiatem plates.Cor porate_por tal_templa tes_v2>"); | |||
| 99 | ServicesRe gistry.get Instance() .getResour ceBundleSe rvice() | 95 | ServicesRe gistry.get Instance() .getResour ceBundleSe rvice() | |||
| 100 | .declare ResourceBu ndleDefini tion(resBu ndleID,"ja hiatemplat es.Corpora te_portal_ templates_ v2"); | 96 | .declare ResourceBu ndleDefini tion(resBu ndleID,"ja hiatemplat es.Corpora te_portal_ templates_ v2"); | |||
| 101 | 97 | |||||
| 102 | // store t he navigat ionContain erList def container s for leve l 1 | 98 | // store t he navigat ionContain erList def container s for leve l 1 | |||
| 103 | Vector top Navigation ContainerV ector = ne w Vector() ; | 99 | Vector top Navigation ContainerV ector = ne w Vector() ; | |||
| 104 | JahiaConta inerList t opNavigati onContaine rList = nu ll; | 100 | JahiaConta inerList t opNavigati onContaine rList = nu ll; | |||
| 105 | if (reques t.getAttri bute("topN avigationC ontainerVe ctor") == null) { | 101 | if (reques t.getAttri bute("topN avigationC ontainerVe ctor") == null) { | |||
| 106 | logger .debug("to pNavigatio nContainer Vector not in reques t -> compu te Absolut eContainer List"); | 102 | logger .debug("to pNavigatio nContainer Vector not in reques t -> compu te Absolut eContainer List"); | |||
| 107 | topNav igationCon tainerList = | 103 | topNav igationCon tainerList = | |||
| 108 | jD ata.contai ners().get AbsoluteCo ntainerLis t( "naviga tionContai nerList",h omePageId ); | 104 | jD ata.contai ners().get AbsoluteCo ntainerLis t( "naviga tionContai nerList",h omePageId ); | |||
| 109 | reques t.setAttri bute("topN avigationC ontainerLi st",topNav igationCon tainerList ); | 105 | reques t.setAttri bute("topN avigationC ontainerLi st",topNav igationCon tainerList ); | |||
| 110 | if (to pNavigatio nContainer List != nu ll) { | 106 | if (to pNavigatio nContainer List != nu ll) { | |||
| 111 | En umeration topNavigat ionContain ers = topN avigationC ontainerLi st.getCont ainers(); | 107 | En umeration topNavigat ionContain ers = topN avigationC ontainerLi st.getCont ainers(); | |||
| 112 | wh ile (topNa vigationCo ntainers.h asMoreElem ents()) { | 108 | wh ile (topNa vigationCo ntainers.h asMoreElem ents()) { | |||
| 113 | JahiaCon tainer top Navigation Container = | 109 | JahiaCon tainer top Navigation Container = | |||
| 114 | (Jah iaContaine r) topNavi gationCont ainers.nex tElement() ; | 110 | (Jah iaContaine r) topNavi gationCont ainers.nex tElement() ; | |||
| 115 | topNavig ationConta inerVector .add(topNa vigationCo ntainer); | 111 | topNavig ationConta inerVector .add(topNa vigationCo ntainer); | |||
| 116 | } | 112 | } | |||
| 117 | } else { | 113 | } else { | |||
| 118 | lo gger.debug ("navigati onContaine rList on p age " + ho mePageId + " is NULL " ); | 114 | lo gger.debug ("navigati onContaine rList on p age " + ho mePageId + " is NULL " ); | |||
| 119 | } | 115 | } | |||
| 120 | reques t.setAttri bute("topN avigationC ontainerVe ctor",topN avigationC ontainerVe ctor); | 116 | reques t.setAttri bute("topN avigationC ontainerVe ctor",topN avigationC ontainerVe ctor); | |||
| 121 | } else { | 117 | } else { | |||
| 122 | topNav igationCon tainerVect or = | 118 | topNav igationCon tainerVect or = | |||
| 123 | (V ector) req uest.getAt tribute("t opNavigati onContaine rVector"); | 119 | (V ector) req uest.getAt tribute("t opNavigati onContaine rVector"); | |||
| 124 | topNav igationCon tainerList = | 120 | topNav igationCon tainerList = | |||
| 125 | (J ahiaContai nerList) r equest.get Attribute( "topNaviga tionContai nerList"); | 121 | (J ahiaContai nerList) r equest.get Attribute( "topNaviga tionContai nerList"); | |||
| 126 | //logg er.debug(" get topNav igationCon tainerVect or from re quest"); | 122 | //logg er.debug(" get topNav igationCon tainerVect or from re quest"); | |||
| 127 | } | 123 | } | |||
| 128 | 124 | |||||
| 129 | Enumeratio n topNavig ationConta iners = nu ll; | 125 | Enumeratio n topNavig ationConta iners = nu ll; | |||
| 130 | 126 | |||||
| 131 | // store t he languag esStates o n request | 127 | // store t he languag esStates o n request | |||
| 132 | Map langua gesStates = null; | 128 | Map langua gesStates = null; | |||
| 133 | if (reques t.getAttri bute("lang uagesState s") == nul l) { | 129 | if (reques t.getAttri bute("lang uagesState s") == nul l) { | |||
| 134 | logger .debug("la nguagesSta tes not in request - > comppute Languages States"); | 130 | logger .debug("la nguagesSta tes not in request - > comppute Languages States"); | |||
| 135 | boolea n withCont ent = true ; | 131 | boolea n withCont ent = true ; | |||
| 136 | if (jD ata.gui(). isNormalMo de()) { | 132 | if (jD ata.gui(). isNormalMo de()) { | |||
| 137 | wi thContent = false; | 133 | wi thContent = false; | |||
| 138 | } | 134 | } | |||
| 139 | 135 | |||||
| 140 | langua gesStates = | 136 | langua gesStates = | |||
| 141 | co ntentPage. getLanguag esStates(w ithContent ); | 137 | co ntentPage. getLanguag esStates(w ithContent ); | |||
| 142 | 138 | |||||
| 143 | /* | 139 | /* | |||
| 144 | Iterat or languag eIterator = language sStates.ke ySet().ite rator(); | 140 | Iterat or languag eIterator = language sStates.ke ySet().ite rator(); | |||
| 145 | boolea n checkUnl inkedObjec t = true; | 141 | boolea n checkUnl inkedObjec t = true; | |||
| 146 | while (languageI terator.ha sNext()) { | 142 | while (languageI terator.ha sNext()) { | |||
| 147 | St ring langu age = (jav a.lang.Str ing) langu ageIterato r.next(); | 143 | St ring langu age = (jav a.lang.Str ing) langu ageIterato r.next(); | |||
| 148 | if (("shared" .equals(la nguage) || jParams.g etLocale() .toString( ).equals(l anguage))& & (((Integ er)languag esStates.g et(languag e)).intVal ue() > Ent ryLoadRequ est.ACTIVE _WORKFLOW_ STATE)) { | 144 | if (("shared" .equals(la nguage) || jParams.g etLocale() .toString( ).equals(l anguage))& & (((Integ er)languag esStates.g et(languag e)).intVal ue() > Ent ryLoadRequ est.ACTIVE _WORKFLOW_ STATE)) { | |||
| 149 | checkUnl inkedObjec t = false; | 145 | checkUnl inkedObjec t = false; | |||
| 150 | } | 146 | } | |||
| 151 | } | 147 | } | |||
| 152 | if(che ckUnlinked Object) { | 148 | if(che ckUnlinked Object) { | |||
| 153 | tr y { | 149 | tr y { | |||
| 154 | Workflow Service wo rkflowServ ice = Serv icesRegist ry.getInst ance().get WorkflowSe rvice(); | 150 | Workflow Service wo rkflowServ ice = Serv icesRegist ry.getInst ance().get WorkflowSe rvice(); | |||
| 155 | List unl inkedObjec ts = workf lowService .getUnlink edContentO bjects(con tentPage); | 151 | List unl inkedObjec ts = workf lowService .getUnlink edContentO bjects(con tentPage); | |||
| 156 | for (int i = 0; i < unlinked Objects.si ze(); i++) { | 152 | for (int i = 0; i < unlinked Objects.si ze(); i++) { | |||
| 157 | Cont entObject contentObj ect = (org .jahia.con tent.Conte ntObject) unlinkedOb jects.get( i); | 153 | Cont entObject contentObj ect = (org .jahia.con tent.Conte ntObject) unlinkedOb jects.get( i); | |||
| 158 | Map map = work flowServic e.getLangu agesStates (workflowS ervice.get HardLinked MainObject (contentOb ject)); | 154 | Map map = work flowServic e.getLangu agesStates (workflowS ervice.get HardLinked MainObject (contentOb ject)); | |||
| 159 | lang uageIterat or = map.k eySet().it erator(); | 155 | lang uageIterat or = map.k eySet().it erator(); | |||
| 160 | whil e (languag eIterator. hasNext()) { | 156 | whil e (languag eIterator. hasNext()) { | |||
| 161 | String lan guage = (j ava.lang.S tring) lan guageItera tor.next() ; | 157 | String lan guage = (j ava.lang.S tring) lan guageItera tor.next() ; | |||
| 162 | if(languag esStates.g et(languag e) == null || ((Inte ger)map.ge t(language )).intValu e()>((Inte ger)langua gesStates. get(langua ge)).intVa lue()) { | 158 | if(languag esStates.g et(languag e) == null || ((Inte ger)map.ge t(language )).intValu e()>((Inte ger)langua gesStates. get(langua ge)).intVa lue()) { | |||
| 163 | langua gesStates. put(langua ge, map.ge t(language )); | 159 | langua gesStates. put(langua ge, map.ge t(language )); | |||
| 164 | } | 160 | } | |||
| 165 | } | 161 | } | |||
| 166 | } | 162 | } | |||
| 167 | } catch (Jah iaExceptio n e) { | 163 | } catch (Jah iaExceptio n e) { | |||
| 168 | e.printS tackTrace( ); //To c hange body of catch statement use File | Settings | File Tem plates. | 164 | e.printS tackTrace( ); //To c hange body of catch statement use File | Settings | File Tem plates. | |||
| 169 | } | 165 | } | |||
| 170 | } | 166 | } | |||
| 171 | */ | 167 | */ | |||
| 172 | 168 | |||||
| 173 | reques t.setAttri bute("lang uagesState s",languag esStates); | 169 | reques t.setAttri bute("lang uagesState s",languag esStates); | |||
| 174 | } else { | 170 | } else { | |||
| 175 | //logg er.debug(" get langua gesStates from reque st"); | 171 | //logg er.debug(" get langua gesStates from reque st"); | |||
| 176 | langua gesStates = (Map) re quest.getA ttribute(" languagesS tates"); | 172 | langua gesStates = (Map) re quest.getA ttribute(" languagesS tates"); | |||
| 177 | } | 173 | } | |||
| 178 | 174 | |||||
| 179 | 175 | |||||
| 180 | String add Button = " <img src=' " + contex tURL + "/i mg/actions /add.gif' border='0' alt='Add' />"; | 176 | String add Button = " <img src=' " + contex tURL + "/i mg/actions /add.gif' border='0' alt='Add' />"; | |||
| 181 | 177 | |||||
| 182 | boolean ad vSearchLic enseEnable d = Licens eActionChe cker.isAut horizedByL icense("or g.jahia.en gines.sear ch.advance dSearch", 0); | 178 | boolean ad vSearchLic enseEnable d = Licens eActionChe cker.isAut horizedByL icense("or g.jahia.en gines.sear ch.advance dSearch", 0); | |||
| 183 | 179 | |||||
| 184 | //variable s necessar y for chat .inc | 180 | //variable s necessar y for chat .inc | |||
| 185 | String cha tstatus=(S tring) ses sion.getAt tribute("c hatstatus" ); | 181 | String cha tstatus=(S tring) ses sion.getAt tribute("c hatstatus" ); | |||
| 186 | if(chatsta tus==null) chatstatu s="false"; | 182 | if(chatsta tus==null) chatstatu s="false"; | |||
| 187 | 183 | |||||
| 188 | boolean is FullScreen = request .getServle tPath().en dsWith("fu llbox.jsp" ); | 184 | boolean is FullScreen = request .getServle tPath().en dsWith("fu llbox.jsp" ); | |||
| 189 | %> | 185 | %> |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2007 Araxis Ltd (www.araxis.com). All rights reserved.