ZEXP H¶((U OFS.FolderqUFolderqtqNt.}q(Uaine1q(U Nq(U OFS.ImageqUFileqttQUaineLisamiseSkriptq (U Iq (U#Products.PythonScripts.PythonScriptq U PythonScriptq ttQU__ac_local_roles__q }qUadminq]qUOwnerqasU_objectsq(}q(U meta_typeqUScript (Python)qUidqh u}q(hUFileqhUaine0qu}q(hhhUaine1qu}q(hhhUaine2qu}q(U meta_typeqU DTML Methodq Uidq!UaineLisamiseVormq"u}q#(hUFileq$h!Uaine3q%u}q&(hUScript (Python)q'h!U aineteLoeteluq(u}q)(U meta_typeq*U DTML Methodq+Uidq,Uavalehtq-u}q.(U meta_typeq/UFileq0Uidq1Uaine4q2u}q3(U meta_typeq4UFileq5Uidq6Uaine5q7u}q8(h4UScript (Python)q9h6UisikuLisamiseSkriptq:u}q;(h4U DTML Methodq(h4h9h6UisikuteLoeteluq?u}q@(h4h5h6Utudeng0qAu}qB(h4h5h6Utudeng1qCu}qD(h4h5h6Utudeng2qEu}qF(U meta_typeqGUFileqHUidqIUtudeng3qJu}qK(U meta_typeqLU DTML MethodqMUidqNU isikulehtqOu}qP(hLUScript (Python)qQhNUkuulajaLisamiseSkriptqRu}qS(U meta_typeqTUFileqUUidqVUkuulaja0qWu}qX(hTUScript (Python)qYhVUisikuAineteLoeteluqZu}q[(hThUhVUkuulaja1q\u}q](U meta_typeq^UFileq_Uidq`Ukuulaja2qau}qb(h^h_h`Ukuulaja3qcu}qd(h^h_h`Ukuulaja4qeu}qf(h^h_h`Ukuulaja5qgu}qh(h^h_h`Ukuulaja6qiutU _propertiesqj(}qk(hUtitleqlUmodeqmUwUtypeqnUstringqou}qp(hUaineqqhnUintqru}qs(h6UtudengqtUtypequUintqvu}qw(hVUkuulajaqxUtypeqyUintqzuth"(U Jq{(UOFS.DTMLMethodq|U DTMLMethodq}ttQhxKhtKhqKh:(U Kq~(h U PythonScriptqttQh7(U Lq€(hUFileqttQh2(U Mq‚(hUFileqƒttQhJ(U Tq„(hUFileq…ttQh(U Oq†(hUFileq‡ttQh%(U Pqˆ(hUFileq‰ttQh(U QqŠ(hUFileq‹ttQUtitleqŒUhe(U cq(hUFileqŽttQhg(U dq(hUFileqttQha(U aq‘(hUFileq’ttQhc(U bq“(hUFileq”ttQhW(U ^q•(hUFileq–ttQUkuulaja1q—(U `q˜(hUFileq™ttQhA(U Sqš(hUFileq›ttQUidqœUregistreerumine2qhi(U eqž(hUFileqŸttQh=(U Uq (h|U DTMLMethodq”ttQh((U Vq¢(h U PythonScriptq£ttQh?(U Wq¤(h U PythonScriptq„ttQhZ(U _q¦(h U PythonScriptq§ttQhC(U YqØ(hUFileq©ttQUavalehtqŖ(U Zq«(h|U DTMLMethodq¬ttQhE(U [q­(hUFileq®ttQhO(U \qÆ(h|U DTMLMethodq°ttQhR(U ]q±(h U PythonScriptq²ttQu. NT((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts64929206.81qU__name__q Uaine1q Uainenimiq U Hüdroloogiaq U _propertiesq (}q(UidqUtitleqUtypeqUstringqu}q(hU content_typeqhhu}q(hh hhuthUtext/x-unknown-content-typeqhUU preconditionqUU__ac_local_roles__q}qUadminq]qUOwnerqasu. IÄ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Uainenimiq UREQUESTq U _getitem_q U_getitemq U _getattr_qU_getattrqU containerqUnrqUstrqUidqUcontextqUgetattrqUdocqtqU co_argcountqKubU_paramsqUainenimi, REQUESTqUidqUaineLisamiseSkriptqU__ac_local_roles__q}qUadminq]q UOwnerq!asU _bind_namesq"(cShared.DC.Scripts.Bindings NameAssignments q#oq$}q%U_asgnsq&}q'(Uname_containerq(U containerq)U name_subpathq*Utraverse_subpathq+U name_contextq,Ucontextq-U name_m_selfq.Uscriptq/usbU func_defaultsq0NU_codeq1Tcsd„ZdS(Nc s t}t}|tdƒddƒ}dt|ƒ} |djo |tdƒdddƒn|tdƒd|dƒ||| tdƒd ƒd ƒ| d d d d ƒ t t| ƒ} | | dƒd|dƒ|||dƒdƒdƒdS(Ns getPropertysaineismanage_addPropertyisintsmanage_changePropertiessmanage_addProductsOFSPsmanage_addFilestitlessfilesainenimisstringsRESPONSEsredirectsavaleht( s _getitem_s_getitems _getattr_s_getattrs containersnrsstrsidscontextsgetattrsdocsainenimisREQUEST( sainenimisREQUESTs _getitem_s_getitems _getattr_s_getattrs containersnrsstrsidscontextsgetattrsdoc((sScript (Python)saineLisamiseSkripts' #+(saineLisamiseSkript(saineLisamiseSkript((sScript (Python)ssq2U_bodyq3T×nr=container.getProperty('aine', 0) #Kui omadust pole, siis väärtuseks 0 id='aine' + str(nr) if nr==0: container.manage_addProperty('aine', 1, 'int') else: container.manage_changeProperties(aine=nr+1) # Faili loomine context.manage_addProduct['OFSP'].manage_addFile(id, title="", file="") #Küsitakse ligipääs loodud failile doc=getattr(context, id) # Andmed atribuutideks doc.manage_addProperty('ainenimi', ainenimi, 'string') REQUEST.RESPONSE.redirect('avaleht') q4U Script_magicq5KUwarningsq6)Uerrorsq7)U Python_magicq8U*ė q9u. JF((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(U__ac_local_roles__q}qUadminq]qUOwnerq asU__name__q UaineLisamiseVormq Utitleq UUglobalsq }qUrawqU˜
qU_varsq}qu. K €((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Ueesnimiq U perekonnanimiq UREQUESTq U _getitem_q U_getitemqU _getattr_qU_getattrqU containerqUnrqUstrqUidqUcontextqUgetattrqUdocqtqU co_argcountqKubU_paramsqUeesnimi, perekonnanimi, REQUESTqUidqUisikuLisamiseSkriptqU__ac_local_roles__q}qUadminq ]q!UOwnerq"asU _bind_namesq#(cShared.DC.Scripts.Bindings NameAssignments q$oq%}q&U_asgnsq'}q((Uname_containerq)U containerq*U name_subpathq+Utraverse_subpathq,U name_contextq-Ucontextq.U name_m_selfq/Uscriptq0usbU func_defaultsq1NU_codeq2Ticsd„ZdS(Nc s(t}t}|tdƒddƒ}dt|ƒ} |djo |tdƒdddƒn|tdƒd|dƒ||| tdƒd ƒd ƒ| d d d d ƒ t t| ƒ} | | dƒd|dƒ|| dƒd|dƒ|||dƒdƒdƒdS(Ns getPropertystudengismanage_addPropertyisintsmanage_changePropertiessmanage_addProductsOFSPsmanage_addFilestitlessfileseesnimisstrings perekonnanimisRESPONSEsredirectsavaleht(s _getitem_s_getitems _getattr_s_getattrs containersnrsstrsidscontextsgetattrsdocseesnimis perekonnanimisREQUEST(seesnimis perekonnanimisREQUESTs _getitem_s_getitems _getattr_s_getattrs containersnrsstrsidscontextsgetattrsdoc((sScript (Python)sisikuLisamiseSkripts' #+(sisikuLisamiseSkript(sisikuLisamiseSkript((sScript (Python)ssq3U_bodyq4Tnr=container.getProperty('tudeng', 0) #Kui omadust pole, siis väärtuseks 0 id='tudeng' + str(nr) if nr==0: container.manage_addProperty('tudeng', 1, 'int') else: container.manage_changeProperties(tudeng=nr+1) # Faili loomine context.manage_addProduct['OFSP'].manage_addFile(id, title="", file="") #Küsitakse ligipääs loodud failile doc=getattr(context, id) # Andmed atribuutideks doc.manage_addProperty('eesnimi', eesnimi, 'string') doc.manage_addProperty('perekonnanimi', perekonnanimi, 'string') REQUEST.RESPONSE.redirect('avaleht') q5U Script_magicq6KUwarningsq7)Uerrorsq8)U Python_magicq9U*ė q:u. LW((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts64931155.29qU__name__q Uaine5q Uainenimiq UHüdrobioloogiaq U _propertiesq (}q(UidqUtitleqUtypeqUstringqu}q(hU content_typeqhhu}q(hh hhuthUtext/x-unknown-content-typeqhUU preconditionqUU__ac_local_roles__q}qUadminq]qUOwnerqasu. MS((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts64930869.35qU__name__q Uaine4q Uainenimiq U Ajalugu IIq U _propertiesq (}q(UidqUtitleqUtypeqUstringqu}q(hU content_typeqhhu}q(hh hhuthUtext/x-unknown-content-typeqhUU preconditionqUU__ac_local_roles__q}qUadminq]qUOwnerqasu. Tt((U OFS.ImageqUFileqtqNt.}q(UsizeqKU perekonnanimiqUSusiqUdataqUU_EtagSupport__etagq U ts65516463.22q U__name__q Utudeng3q U _propertiesq (}q(UidqUtitleqUtypeqUstringqu}q(hU content_typeqhhu}q(hUeesnimiqhhu}q(hhhhuthUtext/x-unknown-content-typeqU__ac_local_roles__q}qUadminq]qUOwnerqashUSiimqhUU preconditionqUu. OX((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts64929158.97qU__name__q Uaine0q Uainenimiq UKeskkonnakaitseq U _propertiesq (}q(UidqUtitleqUtypeqUstringqu}q(hU content_typeqhhu}q(hh hhuthUtext/x-unknown-content-typeqhUU preconditionqUU__ac_local_roles__q}qUadminq]qUOwnerqasu. PS((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts64929443.48qU__name__q Uaine3q Uainenimiq U Eesti keelq U _propertiesq (}q(UidqUtitleqUtypeqUstringqu}q(hU content_typeqhhu}q(hh hhuthUtext/x-unknown-content-typeqhUU preconditionqUU__ac_local_roles__q}qUadminq]qUOwnerqasu. Q_((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts64929217.36qU__name__q Uaine2q Uainenimiq ULineaarne planeerimineq U _propertiesq (}q(UidqUtitleqUtypeqUstringqu}q(hU content_typeqhhu}q(hh hhuthUtext/x-unknown-content-typeqhUU preconditionqUU__ac_local_roles__q}qUadminq]qUOwnerqasu. co((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts65523116.68qU__name__q Ukuulaja4q U _propertiesq (}q (Uidq UtitleqUtypeqUstringqu}q(h U content_typeqhhu}q(h Utudengqhhu}q(h UaineqhhuthUtext/x-unknown-content-typeqhUtudeng0qhUaine3qU__ac_local_roles__q}qUadminq]qUOwnerqashUU preconditionqUu. do((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts65523124.86qU__name__q Ukuulaja5q U _propertiesq (}q (Uidq UtitleqUtypeqUstringqu}q(h U content_typeqhhu}q(h Utudengqhhu}q(h UaineqhhuthUtext/x-unknown-content-typeqhUtudeng1qhUaine2qU__ac_local_roles__q}qUadminq]qUOwnerqashUU preconditionqUu. ao((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts65522043.32qU__name__q Ukuulaja2q U _propertiesq (}q (Uidq UtitleqUtypeqUstringqu}q(h U content_typeqhhu}q(h Utudengqhhu}q(h UaineqhhuthUtext/x-unknown-content-typeqhUtudeng1qhUaine4qU__ac_local_roles__q}qUadminq]qUOwnerqashUU preconditionqUu. bo((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts65522064.85qU__name__q Ukuulaja3q U _propertiesq (}q (Uidq UtitleqUtypeqUstringqu}q(h U content_typeqhhu}q(h Utudengqhhu}q(h UaineqhhuthUtext/x-unknown-content-typeqhUtudeng1qhUaine0qU__ac_local_roles__q}qUadminq]qUOwnerqashUU preconditionqUu. ^o((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts65520436.75qU__name__q Ukuulaja0q U _propertiesq (}q (Uidq UtitleqUtypeqUstringqu}q(h U content_typeqhhu}q(h Utudengqhhu}q(h UaineqhhuthUtext/x-unknown-content-typeqhUtudeng1qhUaine3qU__ac_local_roles__q}qUadminq]qUOwnerqashUU preconditionqUu. `o((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts65521984.72qU__name__q Ukuulaja1q U _propertiesq (}q (Uidq UtitleqUtypeqUstringqu}q(h U content_typeqhhu}q(h Utudengqhhu}q(h UaineqhhuthUtext/x-unknown-content-typeqhUtudeng1qhUaine1qU__ac_local_roles__q}qUadminq]qUOwnerqashUU preconditionqUu. Sw((U OFS.ImageqUFileqtqNt.}q(UsizeqKU perekonnanimiqUMaasikasqUdataqUU_EtagSupport__etagq U ts64932906.1q U__name__q Utudeng0q U _propertiesq (}q(UidqUtitleqUtypeqUstringqu}q(hU content_typeqhhu}q(hUeesnimiqhhu}q(hhhhuthUtext/x-unknown-content-typeqU__ac_local_roles__q}qUadminq]qUOwnerqashUMariqhUU preconditionqUu. en((U OFS.ImageqUFileqtqNt.}q(UsizeqKUdataqUU_EtagSupport__etagqU ts65523133.7qU__name__q Ukuulaja6q U _propertiesq (}q (Uidq UtitleqUtypeqUstringqu}q(h U content_typeqhhu}q(h Utudengqhhu}q(h UaineqhhuthUtext/x-unknown-content-typeqhUtudeng3qhUaine3qU__ac_local_roles__q}qUadminq]qUOwnerqashUU preconditionqUu. U£((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(U__ac_local_roles__q}qUadminq]qUOwnerq asU__name__q UisikuLisamiseVormq Utitleq UUglobalsq }qUrawqUō
qU_varsq}qu. V((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getattr_q U_getattrq U containerq UmUtUxtq U co_argcountqKubU_paramsqUUidqU aineteLoeteluqU__ac_local_roles__q}qUadminq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_subpathqUtraverse_subpathq U name_m_selfq!Uscriptq"U name_contextq#Ucontextq$usbU func_defaultsq%NU_codeq&T/csd„ZdS(Nc sŠt}|tdƒdƒ}g}xR|drE}|||dƒƒdƒdƒo||dƒ|ƒnq3W|SdS(Ns objectValuessFileisids startswithsainesappend(s _getattr_s_getattrs containersmstsx(s _getattr_s_getattrs containersmstsx((sScript (Python)s aineteLoetelus  "(s aineteLoetelu(s aineteLoetelu((sScript (Python)ssq'U_bodyq(Ukm=container.objectValues('File') t=[] for x in m: if x.id().startswith('aine'): t.append(x) return t q)U Script_magicq*KUwarningsq+)Uerrorsq,)U Python_magicq-U*ė q.u. W ((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (U _getattr_q U_getattrq U containerq UmUtUxtq U co_argcountqKubU_paramsqUUidqUisikuteLoeteluqU__ac_local_roles__q}qUadminq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q(Uname_containerqU containerqU name_subpathqUtraverse_subpathq U name_m_selfq!Uscriptq"U name_contextq#Ucontextq$usbU func_defaultsq%NU_codeq&T4csd„ZdS(Nc sŠt}|tdƒdƒ}g}xR|drE}|||dƒƒdƒdƒo||dƒ|ƒnq3W|SdS(Ns objectValuessFileisids startswithstudengsappend(s _getattr_s_getattrs containersmstsx(s _getattr_s_getattrs containersmstsx((sScript (Python)sisikuteLoetelus  "(sisikuteLoetelu(sisikuteLoetelu((sScript (Python)ssq'U_bodyq(Umm=container.objectValues('File') t=[] for x in m: if x.id().startswith('tudeng'): t.append(x) return t q)U Script_magicq*KUwarningsq+)Uerrorsq,)U Python_magicq-U*ė q.u. _Q((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utudengikirjenimiq U _getattr_q U_getattrq U containerq UmUtUxUgetattrqUaineobjqtqU co_argcountqKubU_paramsqUtudengikirjenimiqUidqUisikuAineteLoeteluqU__ac_local_roles__q}qUadminq]qUOwnerqasU _bind_namesq(cShared.DC.Scripts.Bindings NameAssignments qoq}qU_asgnsq}q (Uname_containerq!U containerq"U name_subpathq#Utraverse_subpathq$U name_m_selfq%Uscriptq&U name_contextq'Ucontextq(usbU func_defaultsq)NU_codeq*Tėcsd„ZdS(Nc sĀt}|tdƒdƒ}g}xŠ|dr}}|||dƒƒdƒdƒoR||dƒ|jo5tt||dƒƒ}||d ƒ|ƒnnq3W|SdS( Ns objectValuessFileisids startswithskuulajastudengsainesappend( s _getattr_s_getattrs containersmstsxstudengikirjenimisgetattrsaineobj( studengikirjenimis _getattr_s_getattrs containersmstsxsgetattrsaineobj((sScript (Python)sisikuAineteLoetelus (sisikuAineteLoetelu(sisikuAineteLoetelu((sScript (Python)ssq+U_bodyq,U½m=container.objectValues('File') t=[] for x in m: if x.id().startswith('kuulaja'): if x.tudeng==tudengikirjenimi: aineobj=getattr(container, x.aine) t.append(aineobj) return t q-U Script_magicq.KUwarningsq/)Uerrorsq0)U Python_magicq1U*ė q2u. Yx((U OFS.ImageqUFileqtqNt.}q(UsizeqKU perekonnanimiqUMaasikasqUdataqUU_EtagSupport__etagq U ts64932912.19q U__name__q Utudeng1q U _propertiesq (}q(UidqUtitleqUtypeqUstringqu}q(hU content_typeqhhu}q(hUeesnimiqhhu}q(hhhhuthUtext/x-unknown-content-typeqU__ac_local_roles__q}qUadminq]qUOwnerqashUMatiqhUU preconditionqUu. Zm((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(U__ac_local_roles__q}qUadminq]qUOwnerq asU__name__q Uavalehtq Utitleq UUglobalsq }qUrawqTÅ Lisa aine

Ained

Lisa isik

Isikud

qU_varsq}qu. [u((U OFS.ImageqUFileqtqNt.}q(UsizeqKU perekonnanimiqULepaqUdataqUU_EtagSupport__etagq U ts64932924.88q U__name__q Utudeng2q U _propertiesq (}q(UidqUtitleqUtypeqUstringqu}q(hU content_typeqhhu}q(hUeesnimiqhhu}q(hhhhuthUtext/x-unknown-content-typeqU__ac_local_roles__q}qUadminq]qUOwnerqashUKadriqhUU preconditionqUu. \J((UOFS.DTMLMethodqU DTMLMethodqtqNt.}q(U__ac_local_roles__q}qUadminq]qUOwnerq asU__name__q U isikulehtq Utitleq UUglobalsq }qUrawqT 

Ained

Registreeritud ained

qU_varsq}qu. ] R((U#Products.PythonScripts.PythonScriptqU PythonScriptqtqNt.}q(U func_codeq(cShared.DC.Scripts.Signature FuncCode qoq}q(U co_varnamesq (Utudengq Uaineq UREQUESTq U _getitem_q U_getitemqU _getattr_qU_getattrqU containerqUnrqUstrqUidqUcontextqUgetattrqUdocqtU co_argcountqKubU_paramsqUtudeng, aine, REQUESTqhUkuulajaLisamiseSkriptqU__ac_local_roles__q}qUadminq]qUOwnerq asU _bind_namesq!(cShared.DC.Scripts.Bindings NameAssignments q"oq#}q$U_asgnsq%}q&(Uname_containerq'hU name_subpathq(Utraverse_subpathq)U name_m_selfq*Uscriptq+U name_contextq,husbU func_defaultsq-NU_codeq.Tccsd„ZdS(Nc s,t}t}|tdƒddƒ}dt|ƒ} |djo |tdƒdddƒn|tdƒd|dƒ||| tdƒd ƒd ƒ| d d d d ƒ t t| ƒ} | | dƒd|dƒ|| dƒd|dƒ|||dƒdƒd|ƒdS(Ns getPropertyskuulajaismanage_addPropertyisintsmanage_changePropertiessmanage_addProductsOFSPsmanage_addFilestitlessfilestudengsstringsainesRESPONSEsredirectsisikuleht?kirjenimi=(s _getitem_s_getitems _getattr_s_getattrs containersnrsstrsidscontextsgetattrsdocstudengsainesREQUEST(studengsainesREQUESTs _getitem_s_getitems _getattr_s_getattrs containersnrsstrsidscontextsgetattrsdoc((sScript (Python)skuulajaLisamiseSkripts' #+(skuulajaLisamiseSkript(skuulajaLisamiseSkript((sScript (Python)ssq/U_bodyq0T"nr=container.getProperty('kuulaja', 0) #Kui omadust pole, siis väärtuseks 0 id='kuulaja' + str(nr) if nr==0: container.manage_addProperty('kuulaja', 1, 'int') else: container.manage_changeProperties(kuulaja=nr+1) # Faili loomine context.manage_addProduct['OFSP'].manage_addFile(id, title="", file="") #Küsitakse ligipääs loodud failile doc=getattr(context, id) # Andmed atribuutideks doc.manage_addProperty('tudeng', tudeng, 'string') doc.manage_addProperty('aine', aine, 'string') REQUEST.RESPONSE.redirect('isikuleht?kirjenimi='+tudeng) q1U Script_magicq2KUwarningsq3)Uerrorsq4)U Python_magicq5U*ė q6u.’’’’’’’’’’’’’’’’