Download presentation
Presentation is loading. Please wait.
1
Quick Start: Metadata Basics
William Poppe Curriculum Developer
2
Metadata Basics Become familiar with metadata terminology
Objectives Become familiar with metadata terminology Identify the components of a synonym Understand how an application uses a synonym Create a Synonym Edit a Synonym Enhance a Synonym
3
Getting Started
4
Metadata Basics Metadata concepts and terminology Become familiar with the basic metadata attributes and their functions.
5
What is a WebFOCUS Reporting Application?
Metadata concepts and terminology A reporting application consists of three basic components: Data
6
What is a WebFOCUS Reporting Application?
Metadata concepts and terminology A reporting application consists of three basic components: Data Procedures
7
What is a WebFOCUS Reporting Application?
Metadata concepts and terminology A reporting application consists of three basic components: Data Procedures Web Pages
8
Working with a Relational Database
There are two requirements before WebFOCUS can read from or write to a relational database: A data adapter must be configured for the relational database. Synonyms (metadata – Master Files/Access Files) must be created for the relational database (such as SQL Server).
9
Data Adapters Data adapters manage the communication between the WebFOCUS Client and the data source through the use of SQL statements. WebFOCUS provides native adapters for 300+ data sources, including: Traditional - Relational, ERP, and Legacy data Modern - Cube, Netezza, 1010, Par Accel, Greenplum, Hyperstage, and Hadoop/Hive/HDFS External - Salesforce Web services - REST Adapter Social Data - Facebook and Twitter
10
Query and Data Adapter Processing Sequence
The process of running a request through the WebFOCUS components and retrieving data from a data source is comprised of the following: Query: The front end tool (Portal, IA, or App Studio) initiates the request and sends it to the WebFOCUS Client. The WebFOCUS Client passes the request to the correct WebFOCUS Reporting Server. The WebFOCUS Reporting Server checks the syntax of the procedure, resolves the values of all variables, and passes the request to the data adapter.
11
Query and Data Adapter Processing Sequence
The process of running a request through the WebFOCUS components and retrieving data from a data source is comprised of the following: Data Adapter: The data adapter translates the request into the native language of the data source. The data source processes the request. The data source returns the results to the WebFOCUS Reporting Server for further processing, such as formatting, and styling.
12
Query and Data Adapter Processing Sequence
13
What is Metadata? WebFOCUS Metadata is a generic term used to describe the different items that help WebFOCUS understand the characteristics of the data source you want to use for reporting, such as: The data type Where it is located The data contents How to connect to it
14
WebFOCUS Synonym The purpose of metadata/synonym is to describe this data to WebFOCUS and specify how to display it for WebFOCUS reporting. The overall structure of the data. The specific data elements. Two specific types of WebFOCUS metadata files comprise a Synonym: Master File Access File
15
Master File The Master File identifies the name and type of the data source, identifies fields and groups of fields, and describes the individual attributes of each field such as name, data type, and size, as well as many optional attributes.
16
Access File The Access File has additional information that completes the data source description, such as the database name, table name, and primary key information, as well as additional attributes.
17
How does WebFOCUS use Synonyms?
18
How does WebFOCUS use Synonyms?
Identify Data Source in procedure. The Reporting Server reads the source code in the Synonym.
19
How does WebFOCUS use Synonyms?
The Reporting Server parses the Master File(s) for correct syntax. The Reporting Server requests the appropriate data adapter for the data source.
20
How does WebFOCUS use Synonyms?
The Reporting Server locates and reads the Access File. The data source processes the request, the results are returned to the WebFOCUS Reporting Server for further processing, such as formatting and styling.
21
Challenge Your Understanding - Question
Which part of a synonym describes the data source and location to WebFOCUS? Master File Access File
22
Challenge Your Understanding - Answer
Which part of a synonym describes the data source and location to WebFOCUS? Master File Access File
23
Challenge Your Understanding - Question
Which part of a synonym describes the individual attributes of the data to WebFOCUS? Master File Access File
24
Challenge Your Understanding - Answer
Which part of a synonym describes the individual attributes of the data to WebFOCUS? Master File Access File
25
Create a Synonym
26
Create Synonyms If the data source has an existing description, such as a native schema or catalog, you can create a synonym for a data source automatically. The database tables for this course are Microsoft SQL Server tables, so you will use the Create Synonym tool to generate the synonym from SQL Server.
27
Scenario: Create Synonyms for Single Tables
Brian Welcker, the VP of Sales, would like his staff to improve relations with the company's current customers. He would like to use WebFOCUS to produce reports from tables contained in the SQL Server data mart that the IT department created for Adventure Works. The data mart's database name is IBAdvWrksDM8. The desired tables are awv_customer and awv_department.
28
Begin the Process You can begin the process with App Studio.
App Studio – Data Servers – Applications.
29
Begin the Process You can begin the process with App Studio or the Web Console. Web Console – Applications.
30
Select the Server Node Select the Server Node.
31
Select the Adapter and Database
Select the Adapter and Connection. Select the Database.
32
Select the Tables Select the desired tables.
33
Status Confirmation Confirmation in the Status window.
34
The Environments Tree The created synonyms for awv_customer and awv_department are located in the 510me application folder under Configured Environments.
35
The Metadata canvas
36
The Metadata canvas The Metadata canvas provides a graphical interface that enables you to work with synonyms and perform tasks such as viewing, creating, and modifying the metadata information.
37
The Metadata canvas Open a synonym.
38
The Metadata canvas – View Tabs
The Field View tab shows the columns, also known as fields, in the data source.
39
The Metadata canvas – View Tabs
The Properties panel displays context-sensitive information about the object selected in the left pane, such as the file, segment, or a field.
40
The Metadata canvas – View Tabs
The Segment View displays the segments that the synonym contains. Your synonym contains only one segment. Segments are groups of related columns .
41
The Metadata canvas – View Tabs
The List View displays the fields, and some of their properties in a grid format.
42
The Metadata canvas – View Tabs
The Modeling View shows a graphical representation of the synonym.
43
The Metadata canvas – View Tabs
The Text View shows the Master File contents in text format.
44
The Metadata canvas – View Tabs
The Access File Text View shows the contents of the Access File.
45
The Metadata canvas – Tour of Synonym Attributes
The Table level attributes A Synonym has many capabilities for making reporting easier and more efficient for your users through attributes.
46
The Metadata canvas – Tour of Synonym Attributes
The Table level attributes SUFFIX. Identifies the type of data source and adapter that you are using. MFD_PROFILE. Contains the name of the procedure that will be executed prior to any request that uses the Master File. FDEFCENT and FYRTHRESH. Allows the user to set up a different default century, which will be used when an application encounters a two-digit year, and to set up a different sliding window of 100 years to assign a century value to non-standard date fields. REMARKS. Allows the user to create comments and other documentation to describe the data file.
47
The Metadata canvas – Tour of Synonym Attributes
The Segment level attributes The Segment level attributes appear in the Properties panel.
48
The Metadata canvas – Tour of Synonym Attributes
The Segment SEGMENT. Names a grouping of columns. SEGTYPE. Specifies the type of relationship that a segment has to its parent. SEGTYPE is part of the segment declaration and is used differently in various types of data sources. DESCRIPTION. Allows the user to create comments and other documentation to describe the segment. Adapter Specific. Covered later when addressing Access File attributes.
49
The Metadata canvas – Tour of Synonym Attributes
The Field level attributes The Field level attributes appear in the Properties panel.
50
The Metadata canvas – Tour of Synonym Attributes
The Field level attributes (required) FIELDNAME. Provides the name of each column in the table. By default, this will equal the column name in the original table. ALIAS. Identifies the actual column name in the RDBMS table. It cannot be changed, and it must match the original table column name. ACTUAL. Conveys how this field is actually stored in the relational table, for example, the data type of field and its size. USAGE. Conveys how this field will be displayed when it is used for reporting, for example, the display type of field and its size.
51
The Metadata canvas – Tour of Synonym Attributes
The Access File attributes The Access File Text View contains attributes.
52
The Metadata canvas – Tour of Synonym Attributes
The Access File level attributes SEGNAME. Names the segment and has to match the segment identifier in the Master File. TABLENAME. Tells WebFOCUS the actual physical table name in the relational database. CONNECTION. Provides the name of the defined connection used by the WebFOCUS Reporting Server to access the RDBMS. KEYS. Indicates how many columns constitute the primary key for the table, prior to Version 7 Release 7.06. KEY. Specifies the columns that participate in the primary key without having to describe them first in the Master File, as of Version 7 Release 7.06.
53
The Metadata canvas – Tour of Synonym Attributes
Close the Metadata canvas.
54
Create Synonyms for Foreign Keys
When creating a synonym, it is possible to automatically create a synonym for a primary table that contains connections to other secondary related tables. In this case, you are asking WebFOCUS to create synonyms for tables that will reflect foreign key relationships between data elements. This option makes describing and relating tables simple and efficient.
55
Create Synonyms for Foreign Keys
Primary Key. A column or group of columns that is used to uniquely identify a row in a database table. Foreign Key. A column or group of columns in a row that points to the primary key of another row in another table.
56
Create Synonyms for Foreign Keys
When you create a synonym using foreign keys, a single synonym is created with the inherent join relationships and all the fields for each of the tables. The relationships are created from the information that the metadata tool understands from the structure of the table for the specific RDBMS. The synonym created in this manner is also known as a cluster join or embedded join. When you report using this cluster synonym, you have access to all the tables related by way of the foreign keys.
57
Scenario: Create Synonyms for Multiple Tables
Brian Welcker, the VP of Sales, would like you to replace the current, single view of customer data with a new view. He would like you to include access to the fields in the Country/Region and the State/Province tables in the same view automatically.
58
Create Synonyms for Foreign Keys
Create a new Synonym for awv_customer.
59
Create Synonyms for Foreign Keys
In the Metadata canvas, the Field tree displays several segments in a hierarchical view: awv_customer awv_countryregion awv_stateprovince
60
Create Synonyms for Foreign Keys
In the Access File Text View, you can see the RDBMS names of the tables included in the cluster view: awv_countryregion awv_stateprovince
61
Create Synonyms for Foreign Keys
In the Modeling View, a graphical representation of the synonym displays a cluster join built with the foreign keys.
62
Create Synonyms for Foreign Keys
Test the synonym.
63
Additional Considerations for Synonyms
Some important facts concerning synonyms for relational tables include: The fields in the Master File do not have to match the same sequential order as the columns on the original table. WebFOCUS uses the value of the ALIAS attribute to link the correct column back to the physical table, regardless of its order in the Master File. You do not have to describe all the columns in a relational table in the Master File, with the exception of the primary key. If there are columns that are not necessary for reports or if there are columns that you do not wish users to see, you can remove them from the Master File or hide them from the reporting tools, such as the App Studio Report canvas or the InfoAssist Application Window. The segment name in the Master File must match the segment name in the Access File.
64
Challenge Your Understanding - Question
Which attribute in a Master File is used to identify groups of fields? FIELDNAME ALIAS SEGMENT DESCRIPTION
65
Challenge Your Understanding - Answer
Which attribute in a Master File is used to identify groups of fields? FIELDNAME ALIAS SEGMENT DESCRIPTION The SEGMENT identifies groups of fields.
66
Challenge Your Understanding - Question
In the Master File for a relational table, you should change both the FIELDNAME and ALIAS attributes to any values that are more suitable to your requirements. True False
67
Challenge Your Understanding - Answer
In the Master File for a relational table, you should change both the FIELDNAME and ALIAS attributes to any values that are more suitable to your requirements. True False While the FIELDNAME can be changed, the ALIAS should not be changed, similar to the TABLE attribute in the Access File. The ALIAS refers to the physical column in the referenced table.
68
Editing Synonyms
69
Editing Synonyms After you have created the initial version of your synonyms, they can be enhanced with additional attributes. The Metadata canvas provides a graphical interface that enables you to work with synonyms and perform tasks such as create, view, and modify components. You can adjust certain components to improve reporting, optimize efficiency, and enable usability.
70
Scenario: Editing Synonyms
Paula Barrreto, the HR manager, would like you to enhance the awv_employee Master File to facilitate reporting for her Human Resources department employees.
71
Editing Synonyms Table level attributes The table level attributes are displayed in the Properties panel.
72
Editing Synonyms Table level attributes When you assign a name to a Master File, the following rules apply: The name of a Master File for a FOCUS, relational, and fixed-format sequential data source can be up to 64 characters in length on non-mainframe platforms, such as UNIX and Windows. Master File names are limited to eight characters on a mainframe platform, such as OS/390 and CMS. The name must begin with a letter and may contain a combination of letters, numbers, and underscores, but cannot contain special characters (such as $ or %) or embedded blanks. In most cases, a Master File is named after one of the databases or tables of which it is a view.
73
Editing Synonyms The SUFFIX attribute describes the data source type.
Table level attributes The SUFFIX attribute describes the data source type. The awv_employee file was created from a SQL Server database.
74
Editing Synonyms Table level attributes The Master File Profile (MFD_PROFILE) contains the name of the procedure that will be executed prior to any request that references the Master File. The profile can be used for: Setting the values of global variables defined in the Master File. Creating a lookup file for Master File DEFINE commands or DBA attributes. Creating a DBAFILE, which can be derived from an external data source and used to restrict access during execution of any request that references the Master File.
75
Editing Synonyms Table level attributes The REMARKS attribute can be used for any descriptive comments that will help users identify the contents of the table. The Multilingual REMARKS language selection allows the input of text for any language contained in the list. As part of the WebFOCUS configuration, you can dynamically specify a language setting at run time, and it will determine which text translation is displayed in the metadata.
76
Editing Synonyms Table level attributes The REMARKS attribute.
77
Editing Synonyms Segment level attributes The Master File allows you to identify groups of fields and how they relate to each other. A Segment is a group of corresponding fields in the Master File. This is similar to the concept of a table in relational data source terminology. Each segment should be identified by a unique name and may contain its own key fields.
78
Editing Synonyms Segment level attributes The Segment attributes.
79
Editing Synonyms Field level attributes A Field is the smallest, meaningful element of data in a data source. The name of a field is a required entry and must be unique. A field name can be from one to 66 characters in length. The field name must begin with a letter, and may contain a combination of letters (A – Z), digits (0 – 9), and underscores (_). The name cannot contain special characters (such as $ or %) or embedded blanks. The name that you assign can be different from the name in the native data source. The assigned name will be used as the default column title displayed in reports.
80
Editing Synonyms An Alias is an alternate way to refer to a Field.
Field level attributes An Alias is an alternate way to refer to a Field.
81
Editing Synonyms An Alias is an alternate way to refer to a Field.
Field level attributes An Alias is an alternate way to refer to a Field. An ALIAS is mandatory for relational tables since it must be identical to the field's original column name, as defined in the relational data source table. Do not modify this value unless the original column name in the relational data source has changed. The ALIAS must be unique within the segment. A field name can be from one to 66 characters in length. The field name must begin with a letter, and may contain a combination of letters (A – Z), digits (0 – 9), and underscores (_). The name cannot contain special characters (such as $ or %) or embedded blanks.
82
Editing Synonyms The Missing Attribute.
Field level attributes The Missing Attribute. If a segment instance exists, but no data has been entered into one of its fields, that field has no associated value.
83
Editing Synonyms The Missing Attribute.
Field level attributes The Missing Attribute. If your type of data source supports missing data, as do FOCUS databases and most relational data sources, you can use the optional MISSING attribute to allow null values for reporting purposes. Null values, also known as missing data, are significant in reporting applications and can affect the result of aggregation functions, such as averaging. While some types of data sources represent this absence of data as a blank space or zero (0), others explicitly indicate an absence of data with a null indicator or a special null character value.
84
Editing Synonyms Field level attributes A field name can be given a custom column title through the TITLE attribute. The TITLE is an optional entry and can be up to 64 characters in length and mixed case. The text after a comma (,) will wrap to a new line. Up to five lines are allowed for a column title. The column title described by the TITLE attribute can be overridden in a report request.
85
Editing Synonyms Field level attributes The TITLE attribute.
86
Editing Synonyms Field level attributes The Field Format is required and is divided into two attributes:
87
Editing Synonyms Field level attributes The Field Format is required and is divided into two attributes: USAGE. Defines the type of data and the number of characters that the field can contain, and how to display the field in reports or in calculations. It is also known as the FORMAT attribute. Depending on the Type value, different Options are made available in the tool. ACTUAL. For non-FOCUS data sources, the USAGE attribute is accompanied by an ACTUAL attribute, which describes the type and length of the field as it is actually stored in the original data source. While some data types are universal, such as alphanumeric, the actual format may differ, depending on the conventions used in the data source.
88
Editing Synonyms Field level attributes There are several Field Types available to describe a field. Alphanumeric. Alpha fixed and alpha variable. This is any value to be interpreted as a sequence of characters and composed of any combination of digits, letters, and other characters. Numeric. Integer, Float, Double, and Decimal Packed. They can be used for calculations, like aggregation, sub totals, and grand totals. Date. Enables you to define date components such as year, quarter, month, day, and day of week. You can also perform calculations with date formatted fields. Date-Time (Timestamp). Supports both the date and the time, similar to the timestamp data types available in many relational data sources. Text. Can be used to store large amounts of data and display it with line breaks.
89
Editing Synonyms Field level attributes The Miscellaneous group contains attributes that are mostly optional, but useful.
90
Editing Synonyms Field level attributes You can use the optional DESCRIPTION attribute to provide user-friendly information about a field. The descriptive text can be up to two kilobytes (KB), or 2048 characters, in length. It is useful for providing documentation specific to the field. In reporting products, the description can appear in field lists, on the status bar, as bubble help in OLAP-enabled reports and pop-up description-enabled reports. Rather than having users rely solely on unclear field names, a well-defined description can provide extra clarity to users.
91
Editing Synonyms Field level attributes A developer can provide optional field documentation for the user through the HELPMESSAGE attribute. This attribute provides a line of text, up to 78 characters, about a field that can be used on a data entry screen. Note: this attribute is used only with data maintenance applications.
92
Validate the Synonym CHECK FILE command After you manually create or edit a Master File, you should issue a CHECK FILE command to validate your work. The CHECK FILE command reads the new or revised Master File into memory and parses the source code.
93
Validate the Synonym CHECK FILE command If the data source description has no syntactical errors, the command displays the following message: NUMBER OF ERRORS= 0 NUMBER OF SEGMENTS= n ( REAL= n VIRTUAL= n ) NUMBER OF FIELDS= n INDEXES= n FILES= n NUMBER OF DEFINES= n TOTAL LENGTH OF ALL FIELDS= n
94
Validate the Synonym The CHECK FILE Command: CHECK FILE command
Message Description NUMBER OF ERRORS Number of syntactical errors in the Master File. NUMBER OF SEGMENTS Number of segments in the Master File, including cross-referenced segments. REAL Number of segments that are not cross-referenced. VIRTUAL Number of segments that are cross-referenced. NUMBER OF FIELDS Number of fields described in the Master File. INDEXES Number of indexed fields. These fields have the attribute FIELDTYPE=I or INDEX=I in the Master File. FILES Number of data sources containing the fields. NUMBER OF DEFINES Number of virtual fields in the Master File. This message appears only if virtual fields are defined. TOTAL LENGTH OF ALL FIELDS Total length of all fields as defined in the Master File by either the FORMAT (a FOCUS data source) attribute or the ACTUAL (a non-FOCUS data source) attribute.
95
Generate Sample Data In the Metadata canvas, you can generate a request that shows all the columns in a table.
96
Challenge Your Understanding - Question
Which one of the FIELDNAME attributes allows you to adjust how a numeric field will appear on a report? TITLE USAGE ACTUAL MISSING
97
Challenge Your Understanding - Answer
Which one of the FIELDNAME attributes allows you to adjust how a numeric field will appear on a report? TITLE USAGE ACTUAL MISSING The USAGE attribute allows you to adjust how a numeric field will appear on a report.
98
Challenge Your Understanding - Question
The column title described by the TITLE attribute cannot be overridden in a report request. True False
99
Challenge Your Understanding - Answer
The column title described by the TITLE attribute cannot be overridden in a report request. True False The FIELDNAME from the synonym is the default column name in a report. The column title described by the TITLE attribute overrides the FIELDNAME in a report request. The column heading in a report request overrides the TITLE attribute.
100
Enhancing Synonyms
101
Enhancing Synonyms Although the metadata generated by WebFOCUS is simple and functional, developers can enhance their users’ experience. You can incorporate corporate standards for report generation and styling in a central location, namely their metadata. The technique of enhancing your metadata to reflect corporate standards saves time for developers when creating reports, and provides consistent application of those standards across all reports company-wide. If you decide to make a global change to a standard column, you can make that change in one place. You can employ user-friendly field names that your business users will immediately identify.
102
Enhancing Synonyms Display Formats You can change how a numeric field is displayed by setting the USAGE format in the metadata. Option Type Option Format Example Output Displayed Floating $ M D7.2M $1,234.56 Fixed $ N I5N $ 1,234 Bracket negative B P5.2B (1.23) Credit R P5.2R 1.23 CR Commas (I, F, and P formats) C P5C 12,345 Leading zeros L I3L 007 Zero suppress S F5.2S Percent % F6.2% 87.23%
103
Scenario: Enhancing Synonyms
Paula Barrreto, the HR manager, would like you to enhance the awv_salesorder Master File by changing the formats of the ORDER_QTY and the LINE_TOTAL columns. The current report does not show any comma delimiters (,) or dollar signs ($) for the measures. The LINE_TOTAL field displays the decimal positions.
104
Scenario: Enhancing Synonyms
Paula Barrreto, the HR manager, would like you to enhance the awv_salesorder Master File by changing the formats of the ORDER_QTY and the LINE_TOTAL columns.
105
Enhancing Synonyms USAGE Type Attribute Change the USAGE type attribute for the ORDER_QTY field to include a comma.
106
Enhancing Synonyms USAGE Type Attribute Adjust the LINE_TOTAL field's USAGE attribute to display as a packed-decimal number with a total of eight positions, no decimal values, a comma, and a dollar sign, such as $99,999,999.
107
Enhancing Synonyms USAGE Type Attribute Validate your work to ensure the changes have been made correctly.
108
Scenario: Enhancing Synonyms
Date Formatted Fields Paula Barrreto, the HR manager, would like you to create an alternate format for the Hire Date field, which currently appears as a date and time stamp. She would like you to remove the time component and display the field in month-day-year format. The month component should display as an abbreviation in mixed case, such as Jan or Feb.
109
Scenario: Enhancing Synonyms
Date Formatted Fields Paula Barrreto, the HR manager, would like you to create an alternate format for the Hire Date field, which currently appears as a date and time stamp.
110
Enhancing Synonyms Date Formatted Fields Hide the current Hire Date field in DateTime format.
111
Enhancing Synonyms Rename the current Hire Date field to TDS_HIREDATE.
Date Formatted Fields Rename the current Hire Date field to TDS_HIREDATE.
112
Enhancing Synonyms Create a new current Hire Date field.
Date Formatted Fields Create a new current Hire Date field.
113
Enhancing Synonyms Date Formatted Fields Use the same Alias name. Use Date for the field type.
114
Enhancing Synonyms Change the component order from YMD to MDY.
Date Formatted Fields Change the component order from YMD to MDY.
115
Enhancing Synonyms Date Formatted Fields For the month abbreviated with three letters in mixed case, use Mt - Short month in mixed case Aug.
116
Enhancing Synonyms Date Formatted Fields Validate your work.
117
Challenge Your Understanding - Question
Which Field Format will produce the following output? (86.5%) F12.2N F5.2%B I6L DBMDYY
118
Challenge Your Understanding - Answer
Which Field Format will produce the following output? (86.5%) F12.2N - $ ,455.67 F5.2%B I6L DBMDYY (Date) The format would allow for positions to display the numbers and the percentage. The F(ullword) could also be P(acked) or D(ouble Precision). The % and B(racket) could be in any order.
119
Review: Quick Start - Metadata Basics
Objectives Become familiar with metadata terminology Identify the components of a synonym Understand how an application uses a synonym Create a Synonym Edit a Synonym Enhance a Synonym
120
What’s Next? If You Are Going to Be: Then You Should Take:
A developer who needs to create, edit and enhance the metadata for a WebFOCUS application. This course will give you the firm foundation to build upon for more advanced courses in metadata, reporting and application development. Metadata Essentials – Part 1 (Self Study) A developer who needs to improve your application functionality and user experience by taking advantage of the powerful features and abilities available for metadata. Using App Studio, this class will explore additional metadata concepts and techniques to energize your WebFOCUS applications. Metadata Essentials – Part 2
121
What’s Next? Customer Education - For complete course descriptions with dates and locations, or for more information: Call us at: (800) 969-INFO Visit our Web site at:
122
Socialize to Win! Daily Prizes Awarded!
Tweet and tag #IBSummit during the event! in your #IBSummit pics! Check our Summit Facebook & LinkedIn pages for updates, photos, and announcements
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.