diff --git a/CISTOOLS/Functions/FIND_STRING_PDM.sql b/CISTOOLS/Functions/FIND_STRING_PDM.sql
index a6e9cb3..aff94f3 100644
--- a/CISTOOLS/Functions/FIND_STRING_PDM.sql
+++ b/CISTOOLS/Functions/FIND_STRING_PDM.sql
@@ -1 +1,118 @@
-âÅã@×ÁãÈ@\ÓÉÂÓ@^@
%
%ÃÙÅÁãÅ@ÖÙ@ÙÅ×ÓÁÃÅ@ÆäÕÃãÉÖÕ@ÃÉâãÖÖÓâKÆÉÕÄmâãÙÉÕÇm×ÄÔ@M@
%ÉÕâãÙÉÕÇ@åÁÙÃÈÁÙMñðð]@k@
%ÉÕÓÉÂ@ÃÈÁÙMñð]@k@
%ÉÕÆÉÓÅ@ÃÈÁÙMñð]@ÄÅÆÁäÓã@@ÕäÓÓ@@k@
%ÉÕÔÂÙ@ÃÈÁÙMñð]@ÄÅÆÁäÓã@@ÕäÓÓ@@]@
%ÙÅãäÙÕâ@ãÁÂÓÅ@M@
%âÖäÙÃÅmÓÉÂÙÁÙè@åÁÙÃÈÁÙMñð]@k@
%âÖäÙÃÅmÆÉÓÅ@åÁÙÃÈÁÙMñð]@k@
%âÖäÙÃÅmÔÅÔÂÅÙ@åÁÙÃÈÁÙMñð]@k@
%âÖäÙÃÅmÄÅâÃÙÉ×ãÉÖÕ@åÁÙÃÈÁÙMõð]@k@
%âÖäÙÃÅmãè×Å@åÁÙÃÈÁÙMñð]@k@
%âÖäÙÃÅmâÅØäÅÕÃÅ@ÉÕãÅÇÅÙ@k@
%âÖäÙÃÅmÄÁãÅ@ÉÕãÅÇÅÙ@k@
%âÖäÙÃÅmÄÁãÁ@åÁÙÃÈÁÙMñòð]@k@
%âÖäÙÃÅmÃÙÅÁãÅÄ@ÄÁãÅ@k@
%ÓÁâãmÃÈÁÕÇÅÄ@ÄÁãÅ@k@
%ÓÁâãmâÁåÅÄ@ÄÁãÅ@]@@@
%ÓÁÕÇäÁÇÅ@âØÓ@
%â×ÅÃÉÆÉÃ@ÃÉâãÖÖÓâKÆÕÄâãÙ×ÄÔ@
%ÕÖã@ÄÅãÅÙÔÉÕÉâãÉÃ@
%ÔÖÄÉÆÉÅâ@âØÓ@ÄÁãÁ@
%ÃÁÓÓÅÄ@ÖÕ@ÕäÓÓ@ÉÕ×äã@
%ÃÖÕÃäÙÙÅÕã@ÁÃÃÅââ@ÙÅâÖÓäãÉÖÕ@ÄÅÆÁäÓã@
%âÅã@Ö×ãÉÖÕ@@ÁÓæÂÓÒ@~@\ÁÓÓÙÅÁÄ@k@
%ÁÓæÃ×èÄãÁ@~@\Ö×ãÉÔÉéÅ@k@
%ÃÖÔÔÉã@~@\Ãâ@k@
%ÄÂÇåÉÅæ@~@\âÖäÙÃÅ@k@
%ÄÅÃÙÅâäÓã@~@Móñk@óñk@ðð]@k@
%ÄèÕÄÆãÃÖÓ@~@\ÕÖ@k@
%ÄèÕäâÙ×ÙÆ@~@\äâÅÙ@k@
%âØÓÃäÙÙäÓÅ@~@\âãÄ@k@
%âÙãâÅØ@~@\ÈÅç@@@
%ÂÅÇÉÕ@
%ÄÅÃÓÁÙÅ@ÅÖÆ@ÉÕã@ÕÖã@ÕäÓÓ@ÄÅÆÁäÓã@ð@^@
%ÄÅÃÓÁÙÅ@âÙÃÓÉÂ@ÃÈÁÙ@M@ñð@]@ÄÅÆÁäÓã@}}@^@
%ÄÅÃÓÁÙÅ@âÙÃÆÉÓ@ÃÈÁÙ@M@ñð@]@ÄÅÆÁäÓã@}@}@^@
%ÄÅÃÓÁÙÅ@âÙÃÔÂÙ@ÃÈÁÙ@M@ñð@]@ÄÅÆÁäÓã@}@}@^@
%ÄÅÃÓÁÙÅ@âÙÃÄÅâÃ@åÁÙÃÈÁÙ@M@õð@]@^@
%ÄÅÃÓÁÙÅ@âÙÃãè×Å@åÁÙÃÈÁÙ@M@ñð@]@ÄÅÆÁäÓã@}@}@^@
%ÄÅÃÓÁÙÅ@âÙÃÃÙã@ãÉÔÅâãÁÔ×@^@
%ÄÅÃÓÁÙÅ@âÙÃÃÈÇ@ãÉÔÅâãÁÔ×@^@
%ÄÅÃÓÁÙÅ@âÙÃâÁå@ãÉÔÅâãÁÔ×@^@
%ÄÅÃÓÁÙÅ@âÙÃÄÁã@ÉÕã@ÄÅÆÁäÓã@ð@^@
%ÄÅÃÓÁÙÅ@âÙÃÄãÁ@ÃÈÁÙ@M@ññò@]@ÄÅÆÁäÓã@}@}@^@
%ÄÅÃÓÁÙÅ@âÙÃâÅØ@ÉÕã@ÄÅÆÁäÓã@ð@^@
%ÄÅÃÓÁÙÅ@ÁÓÉÁâÃÔÄ@åÁÙÃÈÁÙ@M@òðð@]@ÄÅÆÁäÓã@}@}@^@
%ÄÅÃÓÁÙÅ@âÆò@ÃäÙâÖÙ@ÆÖÙ@
%âÅÓÅÃã@âÙÃâÅØ@k@âÙÃÄÁã@k@âÙÃÄãÁ@
%ÆÙÖÔ@ØãÅÔ×@K@âÙÃÆÉÓÅò@
%æÈÅÙÅ@ÙÅÇÅç×mÓÉÒÅ@M@ÃÁâã@M@ä××ÅÙ@M@âÙÃÄãÁ@]@Áâ@åÁÙÃÈÁÙ@M@ññò@]@ÃÃâÉÄ@ó÷@]@k@
%ä××ÅÙ@M@ÉÕâãÙÉÕÇ@]@]@^@
%ÄÅÃÓÁÙÅ@âÆ@ÃäÙâÖÙ@ÆÖÙ@
%âÅÓÅÃã@âèâãÅÔmãÁÂÓÅmâÃÈÅÔÁ@k@âèâãÅÔmãÁÂÓÅmÕÁÔÅ@k@âèâãÅÔmãÁÂÓÅmÔÅÔÂÅÙ@k@
%ÃÁâã@M@×ÁÙãÉãÉÖÕmãÅçã@Áâ@åÁÙÃÈÁÙ@M@õð@]@ÃÃâÉÄ@ó÷@]@k@âÖäÙÃÅmãè×Å@k@
%ÃÙÅÁãÅmãÉÔÅâãÁÔ×@k@ÓÁâãmâÖäÙÃÅmä×ÄÁãÅmãÉÔÅâãÁÔ×@k@
%ÓÁâãmâÁåÅmãÉÔÅâãÁÔ×@
%ÆÙÖÔ@âèâ×ÁÙãÉãÉÖÕâãÁã@Á@
%æÈÅÙÅ@âèâãÅÔmãÁÂÓÅmÕÁÔÅ@~@ÃÖÁÓÅâÃÅ@M@ÉÕÆÉÓÅ@k@âèâãÅÔmãÁÂÓÅmÕÁÔÅ@]@
%ÁÕÄ@âèâãÅÔmãÁÂÓÅmâÃÈÅÔÁ@~@ÉÕÓÉÂ@
%ÁÕÄ@ÓÖÃÁãÅ@M@}K}@k@âèâãÅÔmãÁÂÓÅmÔÅÔÂÅÙ@]@~@ð@
%ÁÕÄ@âèâãÅÔmãÁÂÓÅmÔÅÔÂÅÙ@~@ÃÖÁÓÅâÃÅ@M@
%ÉÕÔÂÙ@k@âèâãÅÔmãÁÂÓÅmÔÅÔÂÅÙ@]@
%ÁÕÄ@ÙÅÇÅç×mÓÉÒÅ@M@ä××ÅÙ@M@
%ÇÅãmÃÓÖÂmÆÙÖÔmÆÉÓÅ@M@
%M@ãÙÉÔ@M@âèâãÅÔmãÁÂÓÅmâÃÈÅÔÁ@]@OO@}a}@OO@
%ãÙÉÔ@M@âèâãÅÔmãÁÂÓÅmÕÁÔÅ@]@OO@}M}@OO@
%ãÙÉÔ@M@âèâãÅÔmãÁÂÓÅmÔÅÔÂÅÙ@]@OO@}]}@]@]@]@k@ä××ÅÙ@M@
%ÉÕâãÙÉÕÇ@]@]@^@
%ÄÅÃÓÁÙÅ@ÃÖÕãÉÕäÅ@ÈÁÕÄÓÅÙ@ÆÖÙ@ÕÖã@ÆÖäÕÄ@âÅã@ÅÖÆ@~@ñ@^@
%Ö×ÅÕ@âÆ@^@
%âÆ@z@ÓÖÖ×@
%ÆÅãÃÈ@ÕÅçã@ÆÙÖÔ@âÆ@
%ÉÕãÖ@âÙÃÓÉÂ@k@âÙÃÆÉÓ@k@âÙÃÔÂÙ@k@âÙÃÄÅâÃ@k@âÙÃãè×Å@k@âÙÃÃÙã@k@âÙÃÃÈÇ@k@
%âÙÃâÁå@^@
%ÉÆ@ÅÖÆ@~@ñ@ãÈÅÕ@
%ÓÅÁåÅ@âÆ@^@
%ÅÕÄ@ÉÆ@^@
%âÅã@ÁÓÉÁâÃÔÄ@~@}Ã™…�£…@Ö™@Ù…—“�ƒ…@Á“‰�¢@Ø£…”—Kâ™ƒÆ‰“…ò@Æ–™@}@OO@
%âÙÃÓÉÂ@OO@}a}@OO@âÙÃÆÉÓ@OO@}M}@OO@âÙÃÔÂÙ@OO@}]}@^@
%ÅçÅÃäãÅ@ÉÔÔÅÄÉÁãÅ@ÁÓÉÁâÃÔÄ@^@
%Ö×ÅÕ@âÆò@^@
%âÆò@z@ÓÖÖ×@
%ÆÅãÃÈ@ÕÅçã@ÆÙÖÔ@âÆò@
%ÉÕãÖ@âÙÃâÅØ@k@âÙÃÄÁã@k@âÙÃÄãÁ@^@
\ No newline at end of file
+SET PATH *LIBL ; 
+
+CREATE OR REPLACE FUNCTION CISTOOLS.FIND_STRING_PDM ( 
+	INSTRING VARCHAR(100) , 
+	INLIB CHAR(10) , 
+	INFILE CHAR(10) DEFAULT  NULL  , 
+	INMBR CHAR(10) DEFAULT  NULL  ) 
+	RETURNS TABLE ( 
+	SOURCE_LIBRARY VARCHAR(10) , 
+	SOURCE_FILE VARCHAR(10) , 
+	SOURCE_MEMBER VARCHAR(10) , 
+	SOURCE_DESCRIPTION VARCHAR(50) , 
+	SOURCE_TYPE VARCHAR(10) , 
+	SOURCE_SEQUENCE INTEGER , 
+	SOURCE_DATE INTEGER , 
+	SOURCE_DATA VARCHAR(120) , 
+	SOURCE_CREATED DATE , 
+	LAST_CHANGED DATE , 
+	LAST_SAVED DATE )   
+	LANGUAGE SQL 
+	SPECIFIC CISTOOLS.FNDSTRPDM 
+	NOT DETERMINISTIC 
+	MODIFIES SQL DATA 
+	CALLED ON NULL INPUT 
+	CONCURRENT ACCESS RESOLUTION DEFAULT 
+	SET OPTION  ALWBLK = *ALLREAD , 
+	ALWCPYDTA = *OPTIMIZE , 
+	COMMIT = *CS , 
+	DBGVIEW = *SOURCE , 
+	DECRESULT = (31, 31, 00) , 
+	DYNDFTCOL = *NO , 
+	DYNUSRPRF = *USER , 
+	SQLCURRULE = *STD , 
+	SRTSEQ = *HEX   
+	BEGIN 
+DECLARE EOF INT NOT NULL DEFAULT 0 ; 
+DECLARE SRCLIB CHAR ( 10 ) DEFAULT '' ; 
+DECLARE SRCFIL CHAR ( 10 ) DEFAULT ' ' ; 
+DECLARE SRCMBR CHAR ( 10 ) DEFAULT ' ' ; 
+DECLARE SRCDESC VARCHAR ( 50 ) ; 
+DECLARE SRCTYPE VARCHAR ( 10 ) DEFAULT ' ' ; 
+DECLARE SRCCRT TIMESTAMP ; 
+DECLARE SRCCHG TIMESTAMP ; 
+DECLARE SRCSAV TIMESTAMP ; 
+DECLARE SRCDAT INT DEFAULT 0 ; 
+DECLARE SRCDTA CHAR ( 112 ) DEFAULT ' ' ; 
+DECLARE SRCSEQ INT DEFAULT 0 ; 
+DECLARE ALIASCMD VARCHAR ( 200 ) DEFAULT ' ' ; 
+DECLARE SF2 CURSOR FOR 
+SELECT SRCSEQ , SRCDAT , SRCDTA 
+FROM QTEMP . SRCFILE2 
+WHERE REGEXP_LIKE ( CAST ( UPPER ( SRCDTA ) AS VARCHAR ( 112 ) CCSID 37 ) , 
+UPPER ( INSTRING ) ) ; 
+DECLARE SF CURSOR FOR 
+SELECT SYSTEM_TABLE_SCHEMA , SYSTEM_TABLE_NAME , SYSTEM_TABLE_MEMBER , 
+CAST ( PARTITION_TEXT AS VARCHAR ( 50 ) CCSID 37 ) , SOURCE_TYPE , 
+CREATE_TIMESTAMP , LAST_SOURCE_UPDATE_TIMESTAMP , 
+LAST_SAVE_TIMESTAMP 
+FROM SYSPARTITIONSTAT A 
+WHERE SYSTEM_TABLE_NAME = COALESCE ( INFILE , SYSTEM_TABLE_NAME ) 
+AND SYSTEM_TABLE_SCHEMA = INLIB 
+AND LOCATE ( '.' , SYSTEM_TABLE_MEMBER ) = 0 
+AND SYSTEM_TABLE_MEMBER = COALESCE ( 
+INMBR , SYSTEM_TABLE_MEMBER ) 
+AND REGEXP_LIKE ( UPPER ( 
+GET_CLOB_FROM_FILE ( 
+( TRIM ( SYSTEM_TABLE_SCHEMA ) || '/' || 
+TRIM ( SYSTEM_TABLE_NAME ) || '(' || 
+TRIM ( SYSTEM_TABLE_MEMBER ) || ')' ) ) ) , UPPER ( 
+INSTRING ) ) ; 
+DECLARE CONTINUE HANDLER FOR NOT FOUND SET EOF = 1 ; 
+OPEN SF ; 
+SF : LOOP 
+FETCH NEXT FROM SF 
+INTO SRCLIB , SRCFIL , SRCMBR , SRCDESC , SRCTYPE , SRCCRT , SRCCHG , 
+SRCSAV ; 
+IF EOF = 1 THEN 
+LEAVE SF ; 
+END IF ; 
+SET ALIASCMD = 'Create Or Replace Alias Qtemp.SrcFile2 For ' || 
+SRCLIB || '/' || SRCFIL || '(' || SRCMBR || ')' ; 
+EXECUTE IMMEDIATE ALIASCMD ; 
+OPEN SF2 ; 
+SF2 : LOOP 
+FETCH NEXT FROM SF2 
+INTO SRCSEQ , SRCDAT , SRCDTA ; 
+IF EOF = 1 THEN 
+LEAVE SF2 ; 
+END IF ; 
+PIPE ( 
+SRCLIB , 
+SRCFIL , SRCMBR , SRCDESC , SRCTYPE , SRCSEQ , SRCDAT , SRCDTA , 
+DATE ( SRCCRT ) , DATE ( SRCCHG ) , DATE ( SRCSAV ) ) ; 
+END LOOP ; 
+CLOSE SF2 ; 
+SET EOF = 0 ; 
+END LOOP ; 
+CLOSE SF ; 
+RETURN ; 
+END  ; 
+
+COMMENT ON PARAMETER SPECIFIC FUNCTION CISTOOLS.FNDSTRPDM 
+( INSTRING IS 'Input Search String' , 
+	INLIB IS 'Input Library' , 
+	INFILE IS 'Input File' , 
+	INMBR IS 'Input Member' ) ; 
+
+LABEL ON SPECIFIC FUNCTION CISTOOLS.FNDSTRPDM 
+	IS 'Find String Pdm' ; 
+
+GRANT ALTER , EXECUTE   
+ON SPECIFIC FUNCTION CISTOOLS.FNDSTRPDM 
+TO AMAPICS WITH GRANT OPTION ; 
+
+GRANT EXECUTE   
+ON SPECIFIC FUNCTION CISTOOLS.FNDSTRPDM 
+TO PUBLIC ; 
+
