* copyright (C) 1984-2019 merrill consultants dallas texas usa



Yüklə 28,67 Mb.
səhifə118/383
tarix17.01.2019
ölçüsü28,67 Mb.
#98988
1   ...   114   115   116   117   118   119   120   121   ...   383
Change 27.262 ASUMMIPS is enhanced to add MSU and MIPS for zIIPs, zAAPs

ASUMMIPS to the existing CP variables.

Sep 18, 2009

Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.


Change 27.261 -Variable QBMCTEXT in T1028005 dataset from TMON/DB2 is in

VMAC102 ASCII text, so the INPUT statement was revised.

Sep 18, 2009 -QW0343xx variables are now INPUT and KEEP in T102S343.

-Additional info on the IFCID 005 (T1028005) - SQL text

and IFCID 307 (T1028133) - SQL Stmt Sum (All Qualifiers).

There is no 1-1 relationship between those two files,

especially for dynamic SQL. All SQL text collected is

found in T1028005. When the same SQL statement is

executed more than once, only one observation is created

in T1028005. In T1028133, for each unique collection key,

there is a separate observation. So when user A, B and C

execute the same SQL-stmt (plan/package/stmt), there will

be 3 T1028133 observations (one for each user), but there

will only be one observation in T1028005

Thanks to Christa Neven, KBC Global Services, BELGIUM.

Thanks to Paul Volpi, UHC, USA.

Thanks to James J. Burnes, UHC, USA.
Change 27.260 This elegant contributed algorithm uncompresses CICS/TS

VMAC110 SMF records using SAS statements in VMAC110 that expands

Sep 21, 2009 the SAS _INFILE_ Buffer, using _INFILE_ Special Variable,

Oct 4, 2009 so this algorithm works on z/OS or on any ASCII Platform,

Nov 4, 2009 since it's just SAS code!
********WARNING INSERTED NOV 5, 2009*******************

Unfortunately, this elegance comes at great CPU expense:

While the original change text did warn that:

But the "instream" algorithm may be more CPU intensive

than EXITCICS, so, if you are processing on z/OS, you

may find the EXITCICS algorithm preferable.

only now, with files of 100% compressed records, has the

cost been measured: TWELVE TIMES MORE CPU TIME than

using the (written in ASM code) EXITCICS Infile Exit.

With the INFILE exit, it has already uncompressed the

record, so the SAS decompression code is not executed.

********WARNING INSERTED NOV 5, 2009*******************


Previously, to read compressed CICS/TS 3.2+ SMF records,

you had to assemble MXG's EXITCICS member to create the

CICS "Infile Exit", which can ONLY execute on z/OS.
This algorithm is both automatic and transparent, and, if

the EXITCICS Infile Exit is installed, it will have

already expanded the record, so this "instream" algorithm

won't be executed.

But the "instream" algorithm may be more CPU intensive

than EXITCICS, so, if you are processing on z/OS, you may

find the EXITCICS algorithm preferable. SEE BELOW.
-The Maximum Record Length printed on the SAS log shows

the uncompressed length with EXITCICS, but shows the

maximum compressed length with this expansion algorithm.
-Compressed 110 SMF records can be processed by WPS 2.04,

which added the _INFILE_ Special Variable.


The authors describe their work:

-The compression algorithm used is a simple RLE (Run

Length Encoding) as follows:-

-All compressed data consists of an INDICATOR/LENGTH byte

that is followed by data byte(s). This combination of

indicator/length byte and data byte(s) is repeated until

the end of the compressed data.

-The INDICATOR byte/bit flags the presence of compressed

data by having the TOP Order bit set on. The remainder

of the byte will indicate the length of the uncompressed

data.

-An indicator byte of '80'x (always the first byte of the



compressed field) indicates Compressed data of length

ZERO. There is NO following data byte!

-An indicator bit of '1nnnnnnn'B is followed by a single

data byte that is to be repeated '0nnnnnnn'B times into

the output buffer.

-An indicator bit of '0nnnnnnn'B indicates that the

following '0nnnnnnn'B bytes are simply copied from the

compressed record to the uncompressed buffer.

-This compression algorithm was determined by a few Google

searches and observations of the compressed data and did

not involve any non public knowledge of IBM's processing.
Thanks to Ian Gibson, CPT Global Ltd @ Bendigo & Adelaid Bank, OZ.

Thanks to Peter Turner, CPT Global Ltd @ Bendigo & Adelaid Bank, OZ.

the authors, and, for the CPU measurements on z/OS,

Thanks to Scott Chapman, American Electric Power, USA.


Change 27.259 Support for TMON FOR DB2 Records 'BA','BJ','BK','BL','BM'

VMACTMDB now decode the record-specific fields; previously, only

Sep 17, 2009 the headers were decoded for these subtypes.

Thanks to Ernie Amador, UC Davis Health System, USA.


Change 27.258 Support for ACF2 SUBTYPE='O' OPENEDITION record creates

EXACFOR new ACFOR dataset.

IMACACF2

VMACACF2


VMXGINIT

Sep 16, 2009

Oct 8, 2009

Thanks to Steven Nelson, IBM Global Services, USA.


Change 27.257 Cosmetic. MXG added ***ERROR. SMF RECORD SUBTYPE GT 255

VMACSMF messages when an impossible value for one-byte SUBTYPE is

VMACMIM found when VMACSMF processes an SMF record with the flag

Sep 16, 2009 that the subtype field is populated, but it is at best

only a WARNING message that MXG has corrected the SUBTYPE

variable to the one-byte in byte 19 instead of byte 20.

This is important if you use IMACFILE or %LET MACFILE=

to select/skip SMF records based on SUBTYPE, or if the

SMF record with invalid subtype actually tests SUBTYPE.

-One WARNING ID=189 was flagged with the message, used

for the MIM SMF record; VMACMIM was examined and since

MXG variable SUBTYPE was not tested in that member, there

was no problem. However, the MIMSUTYP was incorrectly

as a two-byte value, so even though it was also not also,

VMACMIM was corrected, in case it's ever needed.

-I haven't (yet) figured out how to turn the warning off,

or maybe decide I should just remove it.

- it needs to precede IMACFILE, so the true subtype will

be populated in SUBTYPE for testing in that exit.

- some IBM records with fixed ID are already corrected

prior to the IMACFILE exit.

- IMACFILE is where you would expect to turn it off.

Thanks to Robert Blackburn, Dominion Resources Services, Inc, USA.
Change 27.256 The QACSLPAR file has 20 undocumented bytes after LPVRM;

VMACQACS the first eight are the SYSTEM ID, new variable LPSYSTEM,

Sep 14, 2009 and the next 12 bytes are skipped, for iSeries V5.4.0.

Thanks to David Bixler, FISERV, USA.


Change 27.255 -Variable SM1209CY is now RETAINed and KEEP= in all four

VMAC120 TYP1209x datasets, as that Enclave Token is needed to

Sep 14, 2009 combine records.

-Variable SM1209FI is now correctly input as &PIB.8.3 and

the divide by 4096 for SMF1209EV and SMF1209FI were

incorrect and are removed.

Thanks to Steiner Amot, VPS ASA, NORWAY.

Thanks to Bjorn Helgestad, VPS ASA, NORWAY.


Change 27.254 Members that read files with an INFILE statement that had

VMACMRKV only LRECL and BLKSIZE now use a Platform-Specific %MACRO

VMACPRPR to set RECFM=VBS on z/OS and RECFM=S370VBS on ASCII.

VMACTSMA See Change 27.311, which removed this change for NTSMF.

VMACNTSM

Sep 14, 2009


Change 27.253 SMF74NID (a/k/a SMF74DCT) is a 28-character field with

VMAC74 26 $EBCDIC text bytes, and two $HEX bytes at the end.

Sep 13, 2009 The final byte appears to always be '00'x, which doesn't

translate, but the penultimate byte has many different

hex values, which may or may not be changed when INPUT

as $EBCDIC, depending on the hex value of that byte.

This change inputs the first 26 as $EBCDIC26., but the

last two bytes are INPUT as $CHAR2. and then SUBSTRinged

back into SMF74NID, to prevent accidental translation.

Of course, those last two hex values may be unprintable

and could cause other problems if they are imported into

other programs; using FORMAT SMF74NID $HEX56.; would

prevent the unprintables, but the text would not be

readable to the human eye.

Thanks to Peter Enrico, Enterprise Performance Strategies, Inc, USA.
Change 27.252 Formats for many duration variables were not TIMEyy.x;

VMXGRMFI all of the duration variables are how TIME12.2 except for

Sep 13, 2009 BATRESP and TSORESP that are TIME13.3.
Change 27.251 -RMM processing now supports all possible date formats:

IMACEDGR RHDTFORM DESCRIPTION EXAMPLES

VMACEDGR A AMERICAN 12/31/1999 MM/DD/YYYY

Sep 11, 2009 E EUROPEAN 31/12/1999 DD/MM/YYYY

Sep 15, 2009 I ISO 1999/12/31 YYYY/MM/DD

Sep 17, 2009 J JULIAN 1999/365 YYYY/DDD

The original _EDGRDTE macro is no longer used.

-The Retention field RDRETCHR or RVRETCHR can contain text

non-date values of CATRETPD or CYCL/99999 or WHILECATLG.

RDWILCAT/RVWILCAT='Y' already existed for WHILECATLG; new

variables RDCYC999/RVCYC999/RDCATRET/RVCATRET are created

and the DATE variables RDRETDAT/RVRETDAT will be missing

values, if xxRETCHR has any of those 3 text values.

-An Original Expiration Date with 00/00/1999 (or any other

non-date value) is stored in new character variable

RDEXPDCH, and the DATE conversion is protected for '00'.

The value of RDEXPDTO will be a missing numeric date

value if RDEXPDCH contains a non-date value.

Thanks to Leendert Keesmaat, UBS, SWITZERLAND.
Change 27.250 Protection for UNKNOWN TOKDANAM printed a message, but it

VMAC80A failed to prevent INPUT STATEMENT EXCEEDED RECORD LENGTH.

Sep 11, 2009 Protection now works.

The RDEFINE CFIELD statement can be used to define custom

fields and their attributes, with locally chosen names;

these new variables in TYPE80TK are populated if found

TOKTYPE ='TYPE'

TOKMAXLE='MAXLENGTH'

TOKFIRST='FIRST'

TOKOTHER='OTHER'

TOKHELP ='HELP'

TOKMIXED='MIXED'

TOKLISTH='LISTHEAD'

TOKURTLA='URTLABEL'

and these observations have TOKSUSBY='CFDEF' to identify

they are locally defined fields.

Thanks to Coen Wessels, IBM SWITZERLAND.

Thanks to Pierra Beda, IBM SWITZERLAND.


Change 27.249 Variable R747PAVG='RMF REPORT*AVERAGE*FRAME*PACING' is

VMAC74 created as R747PAVG=10**6*(R747PFPT/R747PNFT); to match

Sep 10, 2009 the value printed on RMF Reports.

Thanks to Robert Brosnan, Goldman Sachs & Company, USA.


Change 27.248 Change 27.165's insertion of VMXGOPTR cause the I/J vars

VGETDDS that were local to VGETDDs to be overridden by the I/J

VMXGOPTR vars used in VMXGOPTR causing looping and unexpected

Sep 10, 2009 results. Variable names in VMXGOPTR/VGETDDS were changed.

Sep 11, 2009 -Before, if you asked for GOOVOO, or DATEBASE, or GDGs, it

allocated all of them (ensuring they were there) and then

went thru the DDNAMES logic to ensure they were there.

Sort of silly really. Now if you ask for GOOVOO, DATES,

etc., it allocates the datasets and keeps track of them,

so now, the only time it goes thru the DDNAMES logic is

when that argument is used.

Thanks to Jim Horne, Lowe's Companies, USA.


Change 27.247 FLAG1 tests for HyperBuf optional segments overlapped,

FORMATS causing some optional variable to be populated when they

VMACHBUF should have been missing; DATALAS-ESTDBUFS if FLAG1='1.'

Sep 9, 2009 and EXCPIPTH-INDXCISZ if FLAG1='.1'. The three tests are

now '10', '11', and '01' to only appropriately input.

-New $MGHBUFT format decodes FLAG1 to identify the type of

optional segment, if any, in this record.

Thanks to MP Welch, SPRINT, USA.


Change 27.246 Change 27.127 added KEEP= to TAPES, but variables DSN

DAILYDSN DSNBACTV and STPNAME were not kept, causing UNINITIALIZED

Sep 9, 2009 VARIABLE messages.

Thanks to Thomas Heitlinger, FIDUCIA IT AG, GERMANY.

Thanks to Sieghart Seith, FIDUCIA IT AG, GERMANY.
Change 27.245 zIIP and zAAPs are added to SAS/GRAPH hourly workload

GRAFWRKX reports, using PDB.RMFINTRV.

Sep 8, 2009

Thanks to Tom Kelman, Commerce Bank of Kansas City, USA.


Change 27.244 Variable OTRANNUM in VMAC110 was correctly input &PD.4 if

VMAC110 IMACEXCL was used, but the default INPUT without IMACEXCL

Sep 8, 2009 was incorrectly input as &PIB.4.

Thanks to Scott Barry, SBBWorks Inc, USA.


Change 27.243 Cosmetic, and only for MXG QA. SAS Option CHARCODE is

FORMATS enabled in FORMATS (Change 13.319) so that two-character

Sep 7, 2009 operators ?< and ?> can be used on both EBCDIC and ASCII

in place of Left Squiggly and Right Squiggly Brackets,

where they are needed for valid syntax for OTHER operand.

This change reinstates the default Option NOCHARCODE at

the end of FORMATS. The observed problem was seen only

in the single-step QA job (which begins with FORMATS);

with CHARCODE left enabled, the label of two variables

(TDSL12TY and QW0350SL), that happened to contain ?) text

were changed by CHARCODE to a right squiggly bracket, so

QA labels in DOCVER were NOT the actual variable labels.

These two-character operators are CHARCODE-translated:

Symbol Two-Character Operators

backquote (`) ?:

backslash (\) ?,

left brace ({) ?(

right brace (}) ?)

logical not sign (¬ or ^) ?=

left square bracket ([) ?<

right square bracket (]) ?>

underscore (_) ?-

vertical bar (|) ?/
Change 27.242 -Elimination of Numeric to Character Conversions in tests

ASUMCICS for VGETOBS.

ASUMCICX -If MXGMQADD=NO was specified but the _INMQ macro was not

VMXGUOW nulled, UNINITIALIZED VARIABLE messages were printed for

Sep 8, 2009 all of the MQ variables.

Sep 28, 2009 -If CICSTRAN has zero observations, PDB.ASUMUOW cannot be

populated, but it will be created with zero observations,

and MXGERROR message is printed on the log, and reading

of DB2ACCT/MQ data will not be done.

-Variable MQTRAN created in PDB.ASUMUOW to count MQs.

-Variable CPUMQMTM created in PDB.ASUMUOW as the sum of

QMACCPUT (now zero) WTASOTCT, WTASCMCT, and WTASBACT.

-Variable CPUUOWTM created in PDB.ASUMUOW as the sum of

CPUTM (CICS), DB2TCBTM (DB2) and CPUMQMTM (MQ-Series).

-Variable CPUTM (TASCPUTM+CPURLSTM) is created in PDB.CICS

by either ASUMCICS or ASUMCICX.

-VMXGOPTR stashing/revisions for OBS=0.
Change 27.241 SMF 80 record for RACFEVNT=79 with EXTLNTYP=379 segment

VMAC80A with EXTLNLEN=130 caused INPUT STATEMENT EXCEEDED RECORD

Sep 7, 2009 LENGTH ERROR because MXG only INPUT RACF379 $VARYING128.

The INFORMAT in that INPUT is now $VARYING255.

Thanks to Matthew Chappell, Queensland Transport, AUSTRALIA.
Change 27.240 Cosmetic. Five R745Vxxx variables were added in 2000 to

VMAC74 TYPE74CA dataset, but the "DEVICE LSA SECTION" doesn't

Sep 7, 2009 exist and those variables are always missing or blank.

Their labels were changed, especially R745VSER, to avoid

confusion, and now are:

R745VBYW='R745VBYW*ALWAYS MISSING*DOES NOT EXIST

R745VFLG='R745VFLG*ALWAYS BLANK*DOES NOT EXIST

R745VNTR='R745VNTR*ALWAYS MISSING*DOES NOT EXIST

R745VNUM='R745VNUM*ALWAYS MISSING*DOES NOT EXIST

R745VSER='R745VSER*ALWAYS BLANK*DOES NOT EXIST

Thanks to Ray Dunn, CIGNA, USA.

Thanks to Deborah L. Soricelli, CIGNA, USA.


Change 27.239 MXG's full QA stream executes successfully with WPS 2.4

AUTOEXEW under both z/OS 1.9 and Windows/XP; essentially all MXG

MXGWPSV2 programs are now executable under WPS 2.4.

UTILSPAC


VMACEREP These changes are made in WPS 2.4:

VMACSMF -The runtime performance problem with PROC SQL has been

VMXGVTOC corrected, so the testing of the ANALCISH member with

Sep 6, 2009 REPORT=ALL is reinstated in the WPS QA job stream.

Oct 8, 2009 -The PROC PLOT option VPOS is now recognized.

Oct 13, 2009 -The option MAUTOLOCDISPLAY is now recognized.

-The INFILE option CCHHR is supported; circumvention code

that bypassed for QA execution is now revised to test

for &WPSVER GE 2.04 so these programs can now be used on

z/OS: TYPEEREP, VMXGVTOC, and UTILSPAC.

-The _INFILE_ Special Variable is now supported.
-Change 27.110 lists the other MXG programs that cannot

be run as-is with WPS; WPS replicates SAS V8.2, so the

new-in-SAS V9 features are, in general, not supported.
-For z/OS, the MXG JCL procedure MXGWPSV2, the DSNAME for

the WORKMDL='HLP.WPS.SASHELP' replaces WPSDATA because

Model datasets are no longer specified during install.
-The member AUTOEXEW is the example "autoexec" for WPS;

the members AUTOWPS and AUTOEXWP were only for testing

and have been deleted.

-The comments were revised in AUTOEXEW to identify options

that WPS does not currently support; none are required:

WPS 2.4 added supports these OPTIONS

OPTIONS MAUTOLOCDISPLAY;

OPTIONS SORTSEQ=ASCII;

OPTIONS VALIDVARNAME=V7;
-On z/OS, WPS requires a larger REGION size than SAS, with

BUILDPDB needing REGION=230M while SAS used REGION=125MB.

For the full QA job, however, WPS needed a REGION=1200MB,

while SAS V9.2 needed REGION=165MB. WPC will investigate

why that large region was required, but it appears to be

unique to the MXG QA job, which executes over 20,800 DATA

and PROC steps. A large region requirement has not been

reported as an issue by any site running MXG under WPS.


WPS QA took 120 CPU minutes, SAS QA took 53 minutes, on

a z/OS machine with SU_SEC=10000.


-Oct 30: WPS 2.4 supports the FILENAME=variable option on

the INFILE statement, so VMACSMF was revised.


Change 27.238 ERROR: SRCE1 HAS ALREADY BEEN DEFINED AS NUMERIC if some,

ANALDB2R but not all of the AUDIT sub-reports were requested.

VGETOBS The repair led to a MAJOR cleanup of ANALDB2R that also

VMXGSUM significantly reduced the run time (from 5 minutes to

VFMT102 a few seconds for the AUDIT reports).

Sep 6, 2009 Originally:

-Data step creates DB2WORK as union of all input datasets

-Data step creates DB2WORK1 TIMES from DB2WORK

-SORT DB2WORK1 (with MANY variables, long times possible)

-SORT TIMES

-MEAN TIMES into TIMERNGE

-Data step creates PREPRINT merging DB2WORK1 TIMERNGE

-DATA _NULL_ data step does printing

Now


-For each audit type if the data is present and non-zero

OBS View into SORT

-TIME view using datasets created into SORT

-MEANS of TIME into TIMERNGE

-Data step creates view PREPRINT using only the datasets

created in first section and TIMERNGE

-DATA _NULL_ step does printing code for datasets that

does not exist is never generated

-The DATABASE= argument did not select for AUDIT reports.

Note that if the SMF data does NOT include the open event

record (opened before the beginning of this SMF data),

the printed database will be the undecoded hex value,

and won't be the decoded database name in text.

-The VGETOBS, VMXGSUM, VMFT102 members were NOT altered in

this change, but their new updates (Changes 27.237,

27.234, 27.236) are required to support this change to

ANALDB2R.

Thanks to Sam Knutson, GEICO, USA.

Thanks to Henry Boone, GEICO, USA.
Change 27.237 Enhancement. If no DDNAME argument (zero length) then

VGETOBS the DATASET argument is examined and if is x.y, it will

Sep 5, 2009 be split into DDNAME and DATASET so the PROC SQL can be

Sep 28, 2009 invoked. If DATASET contains x.y syntax AND there is a

DDNAME argument present, VGETOBS will fail with message

that that is not allowed.


Change 27.236 Cosmetic corrections to eliminate character to numeric

VFMT102 conversion messages; VFMT102 in ANALDB2R, and ANAL30DD.

ANAL30DD

Sep 5, 2009


Change 27.235 These six variables in MQMQUEUE are now converted to the

VMAC116 local time zone; previously, they were on GMT:

Sep 4, 2009 WQOPENTI WQCLOSTI WQTTTIME WTASSTRT WTASINTS WTASINTE

Oct 12, 2009 The algorithm used to calculate the GMTOFF in the absence

of the actual value in the record now used is:

GMTOFF=3600*FLOOR(100*(FLOOR(SMFTIME/100)

-FLOOR(WTASINTE/100))/3600);

and the correction would then be:

WTASINTE=WTASINTE+GMTOFF; .
Change 27.234 VMXGSUM is revised so an OUTCODE= argument is not needed

VMXGSUM in many cases where it was previously required, so those

Sep 5, 2009 VMXGSUM callers that could be revised to remove OUTCODE=

are changed, thereby eliminating the second DATA step,

and, a full pass of the output dataset.

Previously OUTCODE= arguments were needed to set LENGTH

and FORMATs, but the SAS V8 INHERIT option made the extra

step unnecessary.

-The second data step can be skipped if INTERVAL= NE NONE

and the DATETIME= argument's variable is in the BY list.

-Conditions that will force the second data step:

%IF &NUMNORM NE 0

OR &ERASEOUT NE NO

OR %LENGTH(&OUTCODE) NE 0

OR %LENGTH(&OUTCODE1) NE 0

OR %LENGTH(&OUTCODE2) NE 0

OR %LENGTH(&FREQ) NE 0

OR %LENGTH(&DURATM) NE 0

OR &INTERVAL NE NONE

OR &NEWSHIFT EQ Y

OR &SASVER LT 7
Change 27.233 Debugging PUT statement now commented out.

VMAC117


Sep 4, 2009

Thanks to Scott Barry, SBBWorks, Inc, USA.


Change 27.232 TMON/DB2-created SMF 101 Subtype 0 record has an invalid

VMACDB2 OFFQLAC value, @1875 vs the real @1879 location, and the

Sep 3, 2009 extra 4 bytes were added to make QLACLEN=232 when only

228 bytes are actually present. Unfortunately, QLACLEN

of 232 says the QLACOFF1 offset to a "truncated QLACLOCN

field" exists in two of those last 4 bytes, so MXG INPUT

the QLACOFF1 offset and attempted to INPUT, causing an

INPUT STATEMENT EXCEEDED RECORD LENGTH ERROR. This

(possibly temporary) change detects the record is NOT an

IBM record (because OFFQLAC is GT OFFPROD), adds 4 to

OFFQLAC and subtracts 4 from LENQLAC so MXG can input the

mis-aligned record, and sets TMDBQLAC='Y' flag that this

was done.

-QLACMDWT is a binary value in the TMON/DB2 record, but it

is a floating point value in IBM records, so this change

uses TMDBQLAC if set to INPUT the incorrect informat.

-Support at TMON/DB2 will be contacted and this text will

be updated when they respond.

Thanks to Mary Vollmer, MGIC, USA.
Change 27.231 The four listed ASUMs did not create variable ZDATE/ZTIME

ASUMDB2P while the other thirty-seven ASUMs did.

ASUMDB2S

ASUMDB2G


ASUMDB2S

Sep 3, 2009

Thanks to Denise Willers, InfoCrossing, USA.
Change 27.230 Variable LASTCLAS in IMF dataset CIMSPROG (from 'F9'x)

VMACCIMS was incorrectly INPUT @77 as $CHAR1, but it is now INPUT

Sep 2, 2009 @76 as $CHAR2 and formatted $HEX4.


Yüklə 28,67 Mb.

Dostları ilə paylaş:
1   ...   114   115   116   117   118   119   120   121   ...   383




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin