ASB XE3/32/64 DLL running
[Compiled on 05/06/2018 1:03:04 PM] [File Version : 1.0.0.0]] [Product Version : 1.0.0.0][]
DB Manager created
gcmsSDO_Taleda_PRO827ccb0eea8a706c4c34a16891f84e7btrcmf001018527/07/20250101852019/0024417909000005428????? ???????27/07/20251141500000000227/08/202511415000000002NO0
Executing Savedata webservice
-----------------------------
Received JSON : {"savedata":{"axpapp":"gcms","username":"SDO_Taleda_PRO","password":"827ccb0eea8a706c4c34a16891f84e7b","seed":"","s":"","transid":"trcmf","recordid":"0","recdata":[{"axp_recid1":[{"rowno":"001","text":"0","columns":{"courtcode":"10185","hearing_date":"27/07/2025"}}]},{"axp_recid2":[{"rowno":"001","text":"0","columns":{"court_code":"10185","case_no":"2019/00244","trn_rcms_caseid":"17909000005428","pre_case_purpose_name":"????? ???????","pre_hear_date":"27/07/2025","pre_case_purpose":"11415000000002","next_hear_date":"27/08/2025","new_case_purpose":"11415000000002","isadjourn":"NO","adjourn_type":"0","adjourn_remark":""}}]}]}}
Verifying username and password
User Name : SDO_Taleda_PRO
Select a.*, b.maxlogintry from AXUSERS a , axprops b WHERE lower(a.USERNAME) = :U and b.name = 'app'
U=sdo_taleda_pro
Time elapsed = 31
Password checking along with max.no of login specified in app.xml
update axusers set logintry = 0 where lower(username) = :U
Time elapsed = 0
Result :
Verifying completed...
Page Access Category :
User Name : sdo_taleda_pro
Select sysdate as sdt from dual
Time elapsed = 15
dt=05/08/2025 10:42:11
Select sysdate as sdt from dual
Time elapsed = 0
Select usergroup from AXUSERLEVELGROUPS WHERE (lower(username) =:U) and ((startdate is not null and to_date(:dt,'dd/mm/yyyy hh24:mi:ss') >= startdate) or (startdate is null)) and ((enddate is not null and to_date(:dt,'dd/mm/yyyy hh24:mi:ss') <= enddate) or (enddate is null))
U=sdo_taleda_pro
dt=05/08/2025 10:42:11
dt=05/08/2025 10:42:11
Time elapsed = 16
User Groups: court_admin
select userroles from axusergroups where groupname in ( 'court_admin' )
Time elapsed = 0
User Roles : court_admin
Loading App/User vars
reading the props xml
Step3
Sql : select props from axprops where lower(name)= :name order by blobno
Paramval : app
ParamTYpe : c
Param List : name
select props from axprops where lower(name)= :name order by blobno
Time elapsed = 0
Step4
axprops\stm size:4235
Step4-123456
images\Generalized Court Management System
INRF500250000Ffiresql({m2},{select a.court_name from v_axcourts a where a.PAXUSERNAME = :username order by 1})m_courtname := sqlget({m2},{court_name})firesql({m3},{select a.court_type from v_axcourts a where a.paxusername= :username order by 1})m_courttype := sqlget({m3},{court_type})firesql({m4},{select a.court_name_mastid from v_axcourts a where a.paxusername = :username order by 1})m_courtid := sqlget({m4},{court_name_mastid})firesql({m4},{select a1.axusersid from axusers a1 where a1.username=:username})login_userid := sqlget({m4},{axusersid})firesql({m4},{select :username as uname from dual})u_name := sqlget({m4},{uname})firesql({m4},{select a.COURT_CODE from v_axcourts a where a.PAXUSERNAME = :username order by 1})m_courtcode := sqlget({m4},{COURT_CODE})firesql({m2},{select A.STATE_NAME from state_mast a where A.STATE_CODE ='RJ'})m_statename := sqlget({m2},{STATE_NAME})firesql({m7},{SELECT INITCAP (TRIM (A.DISTNAMEENG)) AS DISTNAMEENG FROM v_axcourts a WHERE A.PAXUSERNAME = :username ORDER BY 1})m_distName := sqlget({m7},{DISTNAMEENG})firesql({m8},{SELECT A.COURT_CATEGOTY FROM v_axcourts a WHERE A.PAXUSERNAME = :username ORDER BY 1})m_courtcatid := sqlget({m8},{COURT_CATEGOTY})firesql({m4},{select b.department_mastid from axcourts a,department_mast b where a.deptname=b.department_mastid and A.AXUSERSID=:login_userid})m_deptid := sqlget({m4},{department_mastid})firesql({m3},{select a.court_type_mastid from v_axcourts a where a.PAXUSERNAME= :username order by 1})m_courttypeid := sqlget({m3},{court_type_mastid})firesql({m4},{select A3.GROUPNAME from axusers a1, axuserlevelgroups a2,axusergroups a3 where a1.axusersid=A2.AXUSERSID and A2.USERGROUP=A3.GROUPNAME and a1.username= :username })urole := sqlget({m4},{groupname})firesql({a1},{select to_date('30/01/2021','DD/MM/RRRR') dd from dual})m_cutoffdt := sqlget({a1},{dd})firesql({P1},{SELECT count(1) ct FROM trn_rcms_officer WHERE court_code in (select court_code from v_axcourts where paxusername = :username) and officer_name !=0})m_offcount := sqlget({P1},{ct})00000F
Step4-4
Step5
Step6
Step9
fetched the props xml
10010000-1000000
2
Evaluating firesql({m2},{select a.court_name from v_axcourts a where a.PAXUSERNAME = :username order by 1})
Calling function firesql
username=SDO_Taleda_PRO
select a.court_name from v_axcourts a where a.PAXUSERNAME = :username order by 1
username=SDO_Taleda_PRO
Time elapsed = 15
Result of firesql =
Result =
Evaluating sqlget({m2},{court_name})
Calling function sqlget
Result of sqlget = ????? ???????, ???????,???? -?????
Result = ????? ???????, ???????,???? -?????
Evaluating firesql({m3},{select a.court_type from v_axcourts a where a.paxusername= :username order by 1})
Calling function firesql
username=SDO_Taleda_PRO
select a.court_type from v_axcourts a where a.paxusername= :username order by 1
username=SDO_Taleda_PRO
Time elapsed = 0
Result of firesql =
Result =
Evaluating sqlget({m3},{court_type})
Calling function sqlget
Result of sqlget = SDO
Result = SDO
Evaluating firesql({m4},{select a.court_name_mastid from v_axcourts a where a.paxusername = :username order by 1})
Calling function firesql
username=SDO_Taleda_PRO
select a.court_name_mastid from v_axcourts a where a.paxusername = :username order by 1
username=SDO_Taleda_PRO
Time elapsed = 0
Result of firesql =
Result =
Evaluating sqlget({m4},{court_name_mastid})
Calling function sqlget
Result of sqlget = 12122000000062
Result = 12122000000062
Evaluating firesql({m4},{select a1.axusersid from axusers a1 where a1.username=:username})
Calling function firesql
select a1.axusersid from axusers a1 where a1.username=:username
username=SDO_Taleda_PRO
Time elapsed = 0
Result of firesql =
Result =
Evaluating sqlget({m4},{axusersid})
Calling function sqlget
Result of sqlget = 1088990009009
Result = 1088990009009
Evaluating firesql({m4},{select :username as uname from dual})
Calling function firesql
select :username as uname from dual
username=SDO_Taleda_PRO
Time elapsed = 0
Result of firesql =
Result =
Evaluating sqlget({m4},{uname})
Calling function sqlget
Result of sqlget = SDO_Taleda_PRO
Result = SDO_Taleda_PRO
Evaluating firesql({m4},{select a.COURT_CODE from v_axcourts a where a.PAXUSERNAME = :username order by 1})
Calling function firesql
select a.COURT_CODE from v_axcourts a where a.PAXUSERNAME = :username order by 1
username=SDO_Taleda_PRO
Time elapsed = 0
Result of firesql =
Result =
Evaluating sqlget({m4},{COURT_CODE})
Calling function sqlget
Result of sqlget = 10185
Result = 10185
Evaluating firesql({m2},{select A.STATE_NAME from state_mast a where A.STATE_CODE ='RJ'})
Calling function firesql
select A.STATE_NAME from state_mast a where A.STATE_CODE ='RJ'
Time elapsed = 0
Result of firesql =
Result =
Evaluating sqlget({m2},{STATE_NAME})
Calling function sqlget
Result of sqlget = ????????
Result = ????????
Evaluating firesql({m7},{SELECT INITCAP (TRIM (A.DISTNAMEENG)) AS DISTNAMEENG FROM v_axcourts a WHERE A.PAXUSERNAME = :username ORDER BY 1})
Calling function firesql
username=SDO_Taleda_PRO
SELECT INITCAP (TRIM (A.DISTNAMEENG)) AS DISTNAMEENG FROM v_axcourts a WHERE A.PAXUSERNAME = :username ORDER BY 1
username=SDO_Taleda_PRO
Time elapsed = 16
Result of firesql =
Result =
Evaluating sqlget({m7},{DISTNAMEENG})
Calling function sqlget
Result of sqlget = Bundi
Result = Bundi
Evaluating firesql({m8},{SELECT A.COURT_CATEGOTY FROM v_axcourts a WHERE A.PAXUSERNAME = :username ORDER BY 1})
Calling function firesql
username=SDO_Taleda_PRO
SELECT A.COURT_CATEGOTY FROM v_axcourts a WHERE A.PAXUSERNAME = :username ORDER BY 1
username=SDO_Taleda_PRO
Time elapsed = 0
Result of firesql =
Result =
Evaluating sqlget({m8},{COURT_CATEGOTY})
Calling function sqlget
Result of sqlget = 10593000000007
Result = 10593000000007
Evaluating firesql({m4},{select b.department_mastid from axcourts a,department_mast b where a.deptname=b.department_mastid and A.AXUSERSID=:login_userid})
Calling function firesql
login_userid=1088990009009
select b.department_mastid from axcourts a,department_mast b where a.deptname=b.department_mastid and A.AXUSERSID=:login_userid
login_userid=1088990009009
Time elapsed = 31
Result of firesql =
Result =
Evaluating sqlget({m4},{department_mastid})
Calling function sqlget
Result of sqlget = 1579880000000
Result = 1579880000000
Evaluating firesql({m3},{select a.court_type_mastid from v_axcourts a where a.PAXUSERNAME= :username order by 1})
Calling function firesql
select a.court_type_mastid from v_axcourts a where a.PAXUSERNAME= :username order by 1
username=SDO_Taleda_PRO
Time elapsed = 0
Result of firesql =
Result =
Evaluating sqlget({m3},{court_type_mastid})
Calling function sqlget
Result of sqlget = 10823000000000
Result = 10823000000000
Evaluating firesql({m4},{select A3.GROUPNAME from axusers a1, axuserlevelgroups a2,axusergroups a3 where a1.axusersid=A2.AXUSERSID and A2.USERGROUP=A3.GROUPNAME and a1.username= :username })
Calling function firesql
username=SDO_Taleda_PRO
select A3.GROUPNAME from axusers a1, axuserlevelgroups a2,axusergroups a3 where a1.axusersid=A2.AXUSERSID and A2.USERGROUP=A3.GROUPNAME and a1.username= :username
username=SDO_Taleda_PRO
Time elapsed = 0
Result of firesql =
Result =
Evaluating sqlget({m4},{groupname})
Calling function sqlget
Result of sqlget = court_admin
Result = court_admin
Evaluating firesql({a1},{select to_date('30/01/2021','DD/MM/RRRR') dd from dual})
Calling function firesql
select to_date('30/01/2021','DD/MM/RRRR') dd from dual
Time elapsed = 15
Result of firesql =
Result =
Evaluating sqlget({a1},{dd})
Calling function sqlget
Result of sqlget = 30/01/2021
Result = 30/01/2021
Evaluating firesql({P1},{SELECT count(1) ct FROM trn_rcms_officer WHERE court_code in (select court_code from v_axcourts where paxusername = :username) and officer_name !=0})
Calling function firesql
username=SDO_Taleda_PRO
SELECT count(1) ct FROM trn_rcms_officer WHERE court_code in (select court_code from v_axcourts where paxusername = :username) and officer_name !=0
username=SDO_Taleda_PRO
Time elapsed = 16
Result of firesql =
Result =
Evaluating sqlget({P1},{ct})
Calling function sqlget
Result of sqlget = 15
Result = 15
3
completed LoadAppVars
Password validation done successfully
select name from tstructs where blobno=1 and name in (SELECT SNAME FROM AXUSERACCESS WHERE RNAME IN ('court_admin') and lower(sname)='trcmf' and stype = 't' )
Time elapsed = 0
select Props from axuseraccess where lower(rname)='court_admin' and lower(sname)='trcmf' and stype = 't'
Time elapsed = 31
Sql : select props from axuseraccess where lower(rname)= :rname and lower(sname)= :sname and stype = :stype order by blobno
Paramval : court_admin,trcmf,t
ParamTYpe : ccc
Param List : rname
sname
stype
select props from axuseraccess where lower(rname)= :rname and lower(sname)= :sname and stype = :stype order by blobno
Time elapsed = 0
Reading data from stream
Executing GetTransControlString
Executing GetTransControl
Creating DbCall
Structure xml not received from client
Step3
Sql : select props from tstructs where lower(name)= :name order by blobno
Paramval : trcmf
ParamTYpe : c
Param List : name
select props from tstructs where lower(name)= :name order by blobno
Time elapsed = 16
Step4
tstructs\stm size:2075
Step4-0
Step4-1
Step4-2
Step4-3
Step4-4
Step5
Step6
Step9
Evaluating date()
Result =
Evaluating iif((next_hear_date>Validating trcmf
>>Frame No 1
courtcode = 10185
hearing_date = 27/07/2025
time zone difference = 0
>>Writing to tables trcmf
Select * FROM Sequence WHERE lower(TRANSTYPE) = 'trcmf'
Time elapsed = 16
Saving to table TRN_RCMS_MHEARING
select * from TRN_RCMS_MHEARING where TRN_RCMS_MHEARINGid=0
Time elapsed = 15
Adding new record to store data from Frame 1, Row 1 Parent Row 0
update connectinfo set lastnumber=:lc,lastupdated=sysdate where connectno = :cn
Time elapsed = 0
RecordId = 17211000011797
MapName
SourceId 0
Select sysdate as sdt from dual
Time elapsed = 0
Select sysdate as sdt from dual
Time elapsed = 32
hearing_date = 27/07/2025
courtcode = 10185
Posting record
Param Type = n
trn_rcms_mhearingid=17211000011797
Param Type = n
sourceid=0
Param Type = c
cancel=F
Param Type = c
createdby=SDO_Taleda_PRO
Param Type = c
createdon=05/08/2025 10:42:12
Param Type = c
username=SDO_Taleda_PRO
Param Type = c
modifiedon=05/08/2025 10:42:12
Param Type = c
app_desc=1
Param Type = c
app_level=1
Param Type = c
hearing_date=27/07/2025 00:00:00
Param Type = c
courtcode=10185
insert into TRN_RCMS_MHEARING (trn_rcms_mhearingid,mapname,sourceid,cancel,createdby,createdon,username,modifiedon,app_desc,app_level,hearing_date,courtcode) values (:trn_rcms_mhearingid,null,:sourceid,:cancel,:createdby,to_date(:createdon,'dd/mm/yyyy hh24:mi:ss'),:username,to_date(:modifiedon,'dd/mm/yyyy hh24:mi:ss'),:app_desc,:app_level,to_date(:hearing_date,'dd/mm/yyyy hh24:mi:ss'),:courtcode)
Saving to table TRN_RCMS_HEARING
select * from TRN_RCMS_HEARING where TRN_RCMS_HEARINGid=0
Time elapsed = 0
Adding new record to store data from Frame 2, Row 1 Parent Row 0
update connectinfo set lastnumber=:lc,lastupdated=sysdate where connectno = :cn
Time elapsed = 0
RecordId = 17211000011798
MapName
SourceId 0
Select sysdate as sdt from dual
Time elapsed = 16
Select sysdate as sdt from dual
Time elapsed = 0
next_hear_date = 27/08/2025
new_case_purpose = 11415000000002
adjourn_remark =
adjourn_type = 0
isadjourn = NO
case_no = 2019/00244
court_code = 10185
trn_rcms_caseid = 17909000005428
pre_case_purpose = 11415000000002
pre_hear_date = 27/07/2025
TRN_RCMS_HEARINGrow = 1
Posting record
Param Type = n
trn_rcms_hearingid=17211000011798
Param Type = n
trn_rcms_mhearingid=17211000011797
Param Type = n
sourceid=0
Param Type = c
cancel=F
Param Type = c
createdby=SDO_Taleda_PRO
Param Type = c
createdon=05/08/2025 10:42:12
Param Type = c
username=SDO_Taleda_PRO
Param Type = c
modifiedon=05/08/2025 10:42:12
Param Type = c
app_desc=1
Param Type = c
app_level=1
Param Type = c
next_hear_date=27/08/2025 00:00:00
Param Type = c
new_case_purpose=11415000000002
Param Type = c
adjourn_type=0
Param Type = c
isadjourn=NO
Param Type = c
case_no=2019/00244
Param Type = c
court_code=10185
Param Type = c
trn_rcms_caseid=17909000005428
Param Type = n
pre_case_purpose=11415000000002
Param Type = c
pre_hear_date=27/07/2025 00:00:00
Param Type = n
trn_rcms_hearingrow=1
insert into TRN_RCMS_HEARING (trn_rcms_hearingid,trn_rcms_mhearingid,mapname,sourceid,cancel,createdby,createdon,username,modifiedon,app_desc,app_level,next_hear_date,new_case_purpose,adjourn_remark,adjourn_type,isadjourn,case_no,court_code,trn_rcms_caseid,pre_case_purpose,pre_hear_date,trn_rcms_hearingrow) values (:trn_rcms_hearingid,:trn_rcms_mhearingid,null,:sourceid,:cancel,:createdby,to_date(:createdon,'dd/mm/yyyy hh24:mi:ss'),:username,to_date(:modifiedon,'dd/mm/yyyy hh24:mi:ss'),:app_desc,:app_level,to_date(:next_hear_date,'dd/mm/yyyy hh24:mi:ss'),:new_case_purpose,null,:adjourn_type,:isadjourn,:case_no,:court_code,:trn_rcms_caseid,:pre_case_purpose,to_date(:pre_hear_date,'dd/mm/yyyy hh24:mi:ss'),:trn_rcms_hearingrow)
Time elapsed for insert/update = 3963552131653
>>Executing genmaps
>>Posting from trcmf to tchdh from row 1
>>Mapping
Mapped court_code Row = 1 value = 10185 idvalue 0
Mapped trn_rcms_caseregid Row = 1 value = 17909000005428 idvalue 0
Mapped case_no Row = 1 value = 2019/00244 idvalue 0
Mapped prev_hearing_date Row = 1 value = 27/07/2025 idvalue 0
Mapped prev_case_purposename Row = 1 value = ????? ??????? idvalue 0
Mapped case_purpose Row = 1 value = 11415000000002 idvalue 0
Mapped hearing_date Row = 1 value = 27/08/2025 idvalue 0
Mapped isadjourn Row = 1 value = NO idvalue 0
Mapped adjourn_type Row = 1 value = 0 idvalue 0
Mapped trans_type Row = 1 value = Feedback Submitted (Custom) idvalue 0
>>Validating tchdh
>>Frame No 1
court_code = 10185
trn_rcms_caseregid = 17909000005428
case_no = 2019/00244
prev_hearing_date = 27/07/2025
hearing_date = 27/08/2025
prev_case_purposename = ????? ???????
prev_case_purpose =
prev_case_purposename=????? ???????
SELECT V.CASE_PURPOSE_MASTID
FROM case_purpose_mast v
WHERE v.case_purpose_name = :prev_case_purposename
prev_case_purposename=????? ???????
Time elapsed = 15
prev_case_purpose after validation = 11415000000002
case_purpose = 11415000000002
trans_type = Feedback Submitted (Custom)
clcheck =
isadjourn = NO
adjourn_type = 0
decision_type =
decision_date =
>>Writing to tables tchdh
Select * FROM Sequence WHERE lower(TRANSTYPE) = 'tchdh'
Time elapsed = 0
Saving to table TRN_RCMS_CASE_HIST
select * from TRN_RCMS_CASE_HIST where TRN_RCMS_CASE_HISTid=0
Time elapsed = 0
Adding new record to store data from Frame 1, Row 1 Parent Row 0
update connectinfo set lastnumber=:lc,lastupdated=sysdate where connectno = :cn
Time elapsed = 0
RecordId = 17211000011799
MapName trcmf1
SourceId 17211000011798
Select sysdate as sdt from dual
Time elapsed = 15
Select sysdate as sdt from dual
Time elapsed = 0
trans_type = Feedback Submitted (Custom)
adjourn_type = 0
isadjourn = NO
decision_date =
decision_type = 0
prev_case_purpose = 11415000000002
hearing_date = 27/08/2025
case_no = 2019/00244
trn_rcms_caseregid = 17909000005428
court_code = 10185
case_purpose = 11415000000002
prev_hearing_date = 27/07/2025
Posting record
Param Type = n
trn_rcms_case_histid=17211000011799
Param Type = c
mapname=trcmf1
Param Type = n
sourceid=17211000011798
Param Type = c
cancel=F
Param Type = c
createdby=SDO_Taleda_PRO
Param Type = c
createdon=05/08/2025 10:42:12
Param Type = c
username=SDO_Taleda_PRO
Param Type = c
modifiedon=05/08/2025 10:42:12
Param Type = c
app_desc=1
Param Type = c
app_level=1
Param Type = c
trans_type=Feedback Submitted (Custom)
Param Type = c
adjourn_type=0
Param Type = c
isadjourn=NO
Param Type = n
decision_type=0
Param Type = c
prev_case_purpose=11415000000002
Param Type = c
hearing_date=27/08/2025 00:00:00
Param Type = c
case_no=2019/00244
Param Type = c
trn_rcms_caseregid=17909000005428
Param Type = c
court_code=10185
Param Type = c
case_purpose=11415000000002
Param Type = c
prev_hearing_date=27/07/2025 00:00:00
insert into TRN_RCMS_CASE_HIST (trn_rcms_case_histid,mapname,sourceid,cancel,createdby,createdon,username,modifiedon,app_desc,app_level,trans_type,adjourn_type,isadjourn,decision_date,decision_type,prev_case_purpose,hearing_date,case_no,trn_rcms_caseregid,court_code,case_purpose,prev_hearing_date) values (:trn_rcms_case_histid,:mapname,:sourceid,:cancel,:createdby,to_date(:createdon,'dd/mm/yyyy hh24:mi:ss'),:username,to_date(:modifiedon,'dd/mm/yyyy hh24:mi:ss'),:app_desc,:app_level,:trans_type,:adjourn_type,:isadjourn,null,:decision_type,:prev_case_purpose,to_date(:hearing_date,'dd/mm/yyyy hh24:mi:ss'),:case_no,:trn_rcms_caseregid,:court_code,:case_purpose,to_date(:prev_hearing_date,'dd/mm/yyyy hh24:mi:ss'))
Time elapsed for Gen Map = 3963552135465
Time elapsed for MD Map = 3963552135465
Time elapsed for Save History = 3963552135465
Time elapsed for Save Attachment = 3963552135465
Time elapsed for After Save WF Exec = 3963552135498
Transaction commited
Result : {"message":[{"msg":"Update Feedback (Custom) Saved","recordid":"17211000011797"}]}
Savedata webservice completed
Freeing DbCall Resources
Freeing Store data
Freeing DD Map
Freeing Provide Link
Freeing Validate
Freeing Parser
Freeing Poststr
Freeing Maxrows
Freeing Fnames
Freeing NewMaxRows
Freeing tlines
Freeing workquery
Freeing Struct
Freeing EventList
Freeing Tree Obj
Freeing Workflow Obj
Freeing DbCall Completed
Freeing Action Obj Resources
Closing connection
# 1#Saving to log
Param Type = c
username=SDO_Taleda_PRO
Param Type = c
calledon=05/08/2025 10:42:11
Param Type = c
callfinished=05/08/2025 10:42:15
Param Type = c
structname=trcmf
Param Type = n
recordid=0
Param Type = c
servicename=Saving data
Param Type = c
serviceresult=success
Param Type = n
timetaken=4547
Param Type = n
dbtimetaken=4232
insert into axmwslog (sessionid,username,calledon,callfinished,structname,recordid,servicename,serviceresult,timetaken,dbtimetaken) values (null,:username,to_date(:calledon,'dd/mm/yyyy hh24:mi:ss'),to_date(:callfinished,'dd/mm/yyyy hh24:mi:ss'),:structname,:recordid,:servicename,:serviceresult,:timetaken,:dbtimetaken)
Freeing AxProvider Resources
Freeing DbManager Resources