Text Material Preview
SPLK-1002 Splunk Core Certified Power User exam dumps questions are the
best material for you to test all the related Splunk exam topics. By using the
SPLK-1002 exam dumps questions and practicing your skills, you can increase
your confidence and chances of passing the SPLK-1002 exam.
Features of Dumpsinfo’s products
Instant Download
Free Update in 3 Months
Money back guarantee
PDF and Software
24/7 Customer Support
Besides, Dumpsinfo also provides unlimited access. You can get all
Dumpsinfo files at lowest price.
Splunk Core Certified Power User SPLK-1002 exam free dumps questions
are available below for you to study.
Full version: SPLK-1002 Exam Dumps Questions
1.What is the correct syntax to search for a tag associated with a value on a specific fields?
A. Tag-<field?
B. Tag<filed(tagname.)
C. Tag=<filed>::<tagname>
D. Tag::<filed>=<tagname>
Answer: D
Explanation:
Reference:
https://docs.splunk.com/Documentation/Splunk/8.0.3/Knowledge/TagandaliasfieldvaluesinSplunkW
eb
A tag is a descriptive label that you can apply to one or more fields or field values in your events2.
You can use tags to simplify your searches by replacing long or complex field names or values with
short and simple tags2. To search for a tag associated with a value on a specific field, you can use
1 / 12
https://www.dumpsinfo.com/unlimited-access/
https://www.dumpsinfo.com/exam/splk-1002
the following syntax: tag::<field>=<tagname>2. For example, tag::status=error will search for
events where the status field has a tag named error. Therefore, option D is correct, while options A, B
and C are incorrect because they do not follow the correct syntax for searching tags.
2.During the validation step of the Field Extractor workflow: Select your answer.
A. You can remove values that aren't a match for the field you want to define
B. You can validate where the data originated from
C. You cannot modify the field extraction
Answer: A
Explanation:
During the validation step of the Field Extractor workflow, you can remove values that aren’t a match
for the field you want to define2. The validation step allows you to review and edit the values that
have been extracted by the FX and make sure they are correct and consistent2. You can remove
values that aren’t a match by clicking on them and selecting Remove Value from the menu2. This will
exclude them from your field extraction and update the regular expression accordingly2. Therefore,
option A is correct, while options B and C are incorrect because they are not actions that you can
perform during the validation step of the Field Extractor workflow.
3.Data models are composed of one or more of which of the following datasets? (select all that apply)
A. Transaction datasets
B. Events datasets
C. Search datasets
D. Any child of event, transaction, and search datasets
Answer: ABC
Explanation:
Data model datasets have a hierarchical relationship with each other, meaning they have parent-child
relationships. Data models can contain multiple dataset hierarchies. There are three types of dataset
hierarchies: event, search, and transaction. https://docs.splunk.com/Splexicon:Datamodeldataset
4.Which of the following workflow actions can be executed from search results? (select all that apply)
A. GET
B. POST
C. LOOKUP
D. Search
Answer: A, B, D
Explanation:
As mentioned before, there are two types of workflow actions: GET and POST1. Both types of
workflow actions can be executed from search results by clicking on an event field value that has a
workflow action configured for it1. Another type of workflow action is Search, which runs another
search based on the field value1. Therefore, options A, B and D are correct, while option C is
incorrect because LOOKUP is not a type of workflow action.
5.If there are fields in the data with values that are " " or empty but not null, which of the following
would add a value?
A. | eval notNULL = if(isnull (notNULL), “0” notNULL)
B. | eval notNULL = if(isnull (notNULL), “0”
C. | eval notNULL = “” | nullfill value=0 notNULL
D. | eval notNULL = “” fillnull value=0 notNULL
2 / 12
https://www.dumpsinfo.com/
Answer: D
Explanation:
The correct answer is D. | eval notNULL = “” fillnull value=0 notNULL
Option A is incorrect because it is missing a comma between the “0” and the notNULL in the if
function. The correct syntax for the if function is if (condition, true_value, false_value).
Option B is incorrect because it is missing the false_value argument in the if function. The correct
syntax for the if function is if (condition, true_value, false_value).
Option C is incorrect because it uses the nullfill command, which only replaces null values, not empty
strings. The nullfill command is equivalent to fillnull value=null.
Option D is correct because it uses the eval command to assign an empty string to the notNULL field,
and then uses the fillnull command to replace the empty string with a zero. The fillnull command can
replace any value with a specified replacement, not just null values.
6.The macro weekly sales (2) contains the search string:
index=games | eval ProductSales = $Price$ * $AmountSold$
Which of the following will return results?
A. ‘weekly sales (3)’
B. ‘weekly_sales($3.995, $108)’
C. 'weekly_sales (3.99, 10)’
D. ‘weekly sales (3.99, 10)’
Answer: C
Explanation:
To use a search macro in a search string, you need to place a back tick character (`) before and after
the macro name1. You also need to use the same number of arguments as defined in the macro2.
The macro weekly sales (2) has two arguments: Price and AmountSold. Therefore, you need to
provide two values for these arguments when you call the macro.
The option A is incorrect because it uses parentheses instead of back ticks around the macro name.
The option B is incorrect because it uses underscores instead of spaces in the macro name. The
option D is incorrect because it uses spaces instead of commas to separate the argument values.
Reference: 1 Use search macros in searches - Splunk Documentation 2 Define search macros in
Settings - Splunk Documentation
7.When is a GET workflow action needed?
A. To send field values to an external resource.
B. To retrieve information from an external resource.
C. To use field values to perform a secondary search.
D. To define how events flow from forwarders to indexes.
Answer: B
8.This function of the stats command allows you to return the middle-most value of field X.
A. Median(X)
B. Eval by X
C. Fields(X)
D. Values(X)
Answer: A
9.Which of the following statements describes the command below (select all that apply)
Sourcetype=access_combined | transaction JSESSIONID
3 / 12
https://www.dumpsinfo.com/
A. An additional filed named maxspan is created.
B. An additional field named duration is created.
C. An additional field named eventcount is created.
D. Events with the same JSESSIONID will be grouped together into a single event.
Answer: B, C, D
Explanation:
The command sourcetype=access_combined | transaction JSESSIONID does three things:
It filters the events by the sourcetype access_combined, which is a predefined sourcetype for Apache
web server logs.
It groups the events by the field JSESSIONID, which is a unique identifier for each user session.
It creates a single event from each group of events that share the same JSESSIONID value. This
single event will have some additional fields created by the transaction command, such as duration,
eventcount, and startime.
Therefore, the statements B, C, and D are true.
10.Which type of visualization shows relationships between discrete values in three dimensions?
A. Pie chart
B. Line chart
C. Bubble chart
D. Scatter chart
Answer: C
Explanation:
https://docs.splunk.com/Documentation/DashApp/0.9.0/DashApp/chartsBub
11.Which of the following statements describes Search workflow actions?
A. By default. Search workflow actions will run as a real-time search.
B. Search workflow actions can be configured as scheduledsearches,
C. The user can define the time range of the search when created the workflow action.
D. Search workflow actions cannot be configured with a search string that includes the transaction
command
Answer: C
Explanation:
Search workflow actions are custom actions that run a search when you click on a field value in your
search results. Search workflow actions can be configured with various options, such as label name,
search string, time range, app context, etc. One of the options is to define the time range of the
search when creating the workflow action. You can choose from predefined time ranges, such as Last
24 hours, Last 7 days, etc., or specify a custom time range using relative or absolute time modifiers.
Search workflow actions do not run as real-time searches by default, but rather use the same time
range as the original search unless specified otherwise. Search workflow actions cannot be
configured as scheduled searches, as they are only triggered by user interaction. Search workflow
actions can be configured with any valid search string that includes any search command, such as
transaction.
12.After manually editing; a regular expression (regex), which of the following statements is true?
A. Changes made manually can be reverted in the Field Extractor (FX) UI.
B. It is no longer possible to edit the field extraction in the Field Extractor (FX) UI.
C. It is not possible to manually edit a regular expression (regex) that was created using the Field
Extractor (FX) UI.
D. The Field Extractor (FX) UI keeps its own version of the field extraction in addition to the one that
4 / 12
https://www.dumpsinfo.com/
was manually edited.
Answer: B
Explanation:
After manually editing a regular expression (regex) that was created using the Field Extractor (FX) UI,
it is no longer possible to edit the field extraction in the FX UI. The FX UI is a tool that helps you
extract fields from your data using delimiters or regular expressions. The FX UI can generate a regex
for you based on your selection of sample values or you can enter your own regex in the FX UI.
However, if you edit the regex manually in the props.conf file, the FX UI will not be able to recognize
the changes and will not let you edit the field extraction in the FX UI anymore. You will have to use
the props.conf file to make any further changes to the field extraction. Changes made manually
cannot be reverted in the FX UI, as the FX UI does not keep track of the changes made in the
props.conf file. It is possible to manually edit a regex that was created using the FX UI, as long as you
do it in the props.conf file.
Therefore, only statement B is true about manually editing a regex.
13.When extracting fields, we may choose to use our own regular expressions
A. True
B. False
Answer: A
14.Using the export function, you can export search results as __________.( Select all that apply)
A. Xml
B. Json
C. Html
D. A php file
Answer: A, B
Explanation:
Using the export function, you can export search results as XML or JSON2. The export function
allows you to save your search results in a structured format that can be used by other applications or
tools2. You can use the output_mode parameter to specify whether you want to export your results as
XML or JSON2. Therefore, options A and B are correct, while options C and D are incorrect because
they are not formats that you can export your search results as.
15.Which of the following is true about Pivot?
A. Users can save reports from Pivot.
B. Users cannot share visualizations created with Pivot.
C. Users must use SPL to find events in a Pivot.
D. Users cannot create visualizations with Pivot.
Answer: A
Explanation:
In Splunk, Pivot is a tool that allows you to report on a specific data set without using the Splunk
Search Processing Language (SPL™)1. You can use a drag-and-drop interface to design and
generate pivots that present different aspects of your data in the form of tables, charts, and other
visualizations12.
One of the features of Pivot is that it allows you to save your reports1. This can be useful when you
want to reuse a report or share it with others1. Therefore, it’s not true that users cannot share
visualizations created with Pivot or that they must use SPL to find events in a Pivot12. It’s also not
true that users cannot create visualizations with Pivot, as creating visualizations is one of the main
functions of Pivot12.
5 / 12
https://www.dumpsinfo.com/
16.When a search returns __________, you can view the results as a list.
A. a list of events
B. transactions
C. statistical values
Answer: C
17.For choropleth maps,splunk ships with the following KMZ files (select all that apply)
A. States of the United States
B. States and provinces of the united states and Canada
C. Countries of the European Union
D. Countries of the World
Answer: AD
Explanation:
Splunk ships with the following KMZ files for choropleth maps: States of the United States and
Countries of the World. A KMZ file is a compressed file that contains a KML file and other resources.
A KML file is an XML file that defines geographic features and their properties. A KMZ file can be
used to create choropleth maps in Splunk by using the geom command. A choropleth map is a type of
map that shows geographic regions with different colors based on some metric.
Splunk ships with two KMZ files that define the geographic regions for choropleth maps:
States of the United States: This KMZ file defines the 50 states of the United States and their
boundaries. The name of this KMZ file is us_states.kmz and it is located in the
$SPLUNK_HOME/etc/apps/maps/appserver/static/geo directory.
Countries of the World: This KMZ file defines the countries of the world and their boundaries. The
name of this KMZ file is world_countries.kmz and it is located in the
$SPLUNK_HOME/etc/apps/maps/appserver/static/geo directory.
Splunk does not ship with KMZ files for States and provinces of the United States and Canada or
Countries of the European Union. However, you can create your own KMZ files or download them
from external sources and use them in Splunk.
18.For the following search, which field populates the x-axis?
index=security sourcetype=linux secure | timechart count by action
A. action
B. source type
C. _time
D. time
Answer: C
Explanation:
The correct answer is C. _time.
The timechart command creates a time series chart with corresponding table of statistics, with time
used as the X-axis1. You can specify a split-by field, where each distinct value of the split-by field
becomes a series in the chart1. In this case, the split-by field is action, which means that the chart will
have different lines for different actions, such as accept, reject, or fail2. The count function will
calculate the number of events for each action in each time bin1.
For example, the following image shows a timechart of the count by action for a similar search3: As
you can see, the x-axis is populated by the _time field, which represents the time range of the search.
The y-axis is populated by the count function, which represents the number of events for each action.
The legend shows the different values of the action field, which are used to split the chart into
different series.
6 / 12
https://www.dumpsinfo.com/
Reference:
2: Timechart Command In Splunk With Example - Mindmajix 1: timechart - Splunk Documentation 3:
timechart command examples - Splunk Documentation
19.What do events in a transaction have In common?
A. All events In a transaction must have the same timestamp.
B. All events in a transaction must have the same sourcetype.
C. All events in a transaction must have the exact same set of fields.
D. All events in a transaction must be related by one or more fields.
Answer: D
Explanation:
Reference: https://docs.splunk.com/Documentation/Splunk/8.0.3/Knowledge/Abouttransactions
A transaction is a group of events that share some common characteristics, such asfields, time, or
both. A transaction can be created by using the transaction command or by defining an event type
with transactiontype=true in props.conf. Events in a transaction have one or more fields in common
that relate them to each other. For example, you can create a transaction based on JSESSIONID,
which is a unique identifier for each user session in web logs. Events in a transaction do not have to
have the same timestamp, sourcetype, or exact same set of fields. They only have to share one or
more fields that define the transaction.
20.Why would the following search produce multiple transactions instead of one?
The maxspan option is not included.
The transaction command has a limit of 1000 events per transaction.
The transaction and commands cannot be used together.
The stats list () function is used.
Answer: A
7 / 12
https://www.dumpsinfo.com/
Explanation:
The correct answer is A. The maxspan option is not included1.
In Splunk, the transaction command is used to group events that share common characteristics into a
single transaction1. By default, the transaction command groups all matching events into a single
transaction1.
However, you can use the maxspan option to limit the time span of the transactions1. If the time span
between the first and last event in a transaction exceeds the maxspan value, the transaction
command will start a new transaction1.
Therefore, if the maxspan option is not included in the search, the transaction command might
produce multiple transactions instead of one if the time span between the first and last event in a
transaction exceeds the default maxspan value1.
Here is an example of how you can use the maxspan option in a search:
index=main sourcetype=access_combined | transaction someuniqefield maxspan=1h
In this search, the transaction command groups events that share the same someuniqefield value into
a single transaction, but only if the time span between the first and last event in the transaction does
not exceed 1 hour1. If the time span exceeds 1 hour, the transaction command will start a new
transaction1.
21.Which of the following statements describe the search below? (select all that apply)
Index=main I transaction clientip host maxspan=30s maxpause=5s
A. Events in the transaction occurred within 5 seconds.
B. It groups events that share the same clientip and host.
C. The first and last events are no more than 5 seconds apart.
D. The first and last events are no more than 30 seconds apart.
Answer: ABD
Explanation:
The search below groups events by two or more fields (clientip and host), creates transactions with
start and end constraints (maxspan=30s and maxpause=5s), and calculates the duration of each
transaction.
index=main | transaction clientip host maxspan=30s maxpause=5s
The search does the following:
It filters the events by the index main, which is a default index in Splunk that contains all data that is
not sent to other indexes.
It uses the transaction command to group events into transactions based on two fields: clientip and
host. The transaction command creates new events from groups of events that share the same
clientip and host values.
It specifies the start and end constraints for the transactions using the maxspan and maxpause
arguments. The maxspan argument sets the maximum time span between the first and last events in
a transaction. The maxpause argument sets the maximum time span between any two consecutive
events in a transaction. In this case, the maxspan is 30 seconds and the maxpause is 5 seconds,
meaning that any transaction that has a longer time span or pause will be split into multiple
transactions.
It creates some additional fields for each transaction, such as duration, eventcount, startime, etc. The
duration field shows the time span between the first and last events in a transaction.
22.Which of the following searches show a valid use of a macro? (Choose all that apply.)
A. index=main source=mySource oldField=* |’makeMyField(oldField)’| table _time newField
B. index=main source=mySource oldField=* | stats if(‘makeMyField(oldField)’) | table _time newField
C. index=main source=mySource oldField=* | eval newField=’makeMyField(oldField)’| table _time
newField
8 / 12
https://www.dumpsinfo.com/
D. index=main source=mySource oldField=* | "’newField(‘makeMyField(oldField)’)’" | table _time
newField
Answer: AC
Explanation:
The searches A and C show a valid use of a macro. A macro is a reusable piece of SPL code that
can be called by using single quotes (‘’). A macro can take arguments, which are passed inside
parentheses after the macro name. For example, ‘makeMyField(oldField)’ calls a macro named
makeMyField with an argument oldField. The searches B and D are not valid because they use
double quotes (“”) instead of single quotes (‘’).
23.Which of the following searches show a valid use of macro? (Select all that apply)
A. index=main source=mySource oldField=* |'makeMyField(oldField)'| table _time newField
B. index=main source=mySource oldField=* | stats if('makeMyField(oldField)') | table _time newField
C. index=main source=mySource oldField=* | eval newField='makeMyField(oldField)'| table _time
newField
D. index=main source=mySource oldField=* | "'newField('makeMyField(oldField)')'" | table _time
newField
Answer: A, C
Explanation:
Reference: https://answers.splunk.com/answers/574643/field-showing-an-additional-and-not-visible-
value-1.html
To use a macro in a search, you must enclose the macro name and any arguments in single
quotation marks1. For example, 'my_macro(arg1,arg2)' is a valid way to use a macro with two
arguments. You can use macros anywhere in your search string where you would normally use a
search command or expression1. Therefore, options A and C are valid searches that use macros,
while options B and D are invalid because they do not enclose the macros in single quotation marks.
24.When using the transaction command, how are evicted transactions identified?
A. Closed_txn field is set to o, or false.
B. Max_txn field is set to O, or false.
C. Txn_field is set to 1, or true.
D. open_txn field is set to 1, or true.
Answer: A
Explanation:
The transaction command is a Splunk command that finds transactions based on events that meet
various constraints1.
Transactions are made up of the raw text (the _raw field) of each member, the time and date fields of
the earliest member, as well as the union of all other fields of each member1.
The transaction command adds some fields to the raw events that are part of the transaction12.
These fields are:
duration: The difference, in seconds, between the timestamps for the first and last events in the
transaction12.
eventcount: The number of events in the transaction12.
closed_txn: A Boolean field that indicates whether the transaction is closed or evicted2. A transaction
is closed if it meets one of the following conditions: maxevents, maxpause, maxspan, or startswith2. A
transaction is evicted if it does not meet any of these conditions and exceeds the memory limit
specified by maxopentxn or maxopenevents23.
Therefore, evicted transactions can be distinguished from non-evicted transactions by checking the
value of the closed_txn field. The closed_txn field is set to 0, or false, for evicted transactions and 1,
or true for non-evicted, or closed, transactions23.
9 / 12
https://www.dumpsinfo.com/
25.Which of these search strings is NOT valid:
A. index=web status=50* | chart count over host, status
B. index=web status=50* | chart count over host by status
C. index=web status=50* | chart count by host, status
Answer: A
Explanation:
This search string is not valid: index=web status=50* | chart count over host,status2. This search
string uses an invalid syntax for the chart command. The chart command requires one field after the
over clause and optionally one field after the by clause. However, this search string has two fields
after the over clause separated by a comma.This will cause a syntax error and prevent the search
from running. Therefore, option A is correct, while options B and C are incorrect because they are
valid search strings that use the chart command correctly.
26.When should transaction be used?
A. Only in a large distributed Splunk environment.
B. When calculating results from one or more fields.
C. When event grouping is based on start/end values.
D. When grouping events results in over 1000 events in each group.
Answer: C
27.When using the Field Extractor (FX), which of the following delimiters will work? (select all that
apply)
A. Tabs
B. Pipes
C. Colons
D. Spaces
Answer: A, B, D
Explanation:
Reference:
https://docs.splunk.com/Documentation/Splunk/8.0.3/Knowledge/FXSelectMethodstep
https://community.splunk.com/t5/Splunk-Search/Field-Extraction-Separate-on-Colon/m-p/29751
The Field Extractor (FX) is a tool that helps you extract fields from your data using delimiters or
regular expressions. Delimiters are characters or strings that separate fields in your data.
Some of the delimiters that will work with FX are:
Tabs: horizontal spaces that align text in columns.
Pipes: vertical bars that often indicate logical OR operations.
Spaces: blank characters that separate words or symbols.
Therefore, the delimiters A, B, and D will work with FX.
28.Calculated fields can be based on which of the following?
A. Tags
B. Extracted fields
C. Output fields for a lookup
D. Fields generated from a search string
Answer: B
Explanation:
Reference: https://docs.splunk.com/Documentation/Splunk/8.0.3/Knowledge/definecalcfields
10 / 12
https://www.dumpsinfo.com/
A calculated field is a field that you create based on the value of another field or fields1. You can use
calculated fields to enrich your data with additional information or to transform your data into a more
useful format1. Calculated fields can be based on extracted fields, which are fields that are extracted
from your raw data using various methods such as regular expressions, delimiters, or key-value
pairs1. Therefore, option B is correct, while options A, C and D are incorrect because tags, output
fields for a lookup, and fields generated from a search string are not types of extracted fields.
29.Which statement is true?
A. Pivot is used for creating datasets.
B. Data models are randomly structured datasets.
C. Pivot is used for creating reports and dashboards.
D. In most cases, each Splunk user will create their own data model.
Answer: C
Explanation:
The statement that pivot is used for creating reports and dashboards is true. Pivot is a graphical
interface that allows you to create tables, charts, and visualizations from data models. Data models
are structured datasets that define how data is organized and categorized. Pivot does not create
datasets, but uses existing ones.
30.To identify all of the contributing events within a transaction that contains at least one REJECT
event, which syntax is correct?
A. Index-main | REJECT trans sessionid
B. Index-main | transaction sessionid | search REJECT
C. Index=main | transaction sessionid | whose transaction=reject
D. Index=main | transaction sessionid | where transaction=reject’’
Answer: B
Explanation:
The transaction command is used to group events that share a common value for one or more fields
into transactions2. The transaction command assigns a transaction ID to each group of events and
creates new fields such as duration, eventcount and eventlist for each transaction2. To identify all of
the contributing events within a transaction that contains at least one REJECT event, you can use the
following syntax: index=main | transaction sessionid | search REJECT2. This search will first group
the events by sessionid, then filter out the transactions that do not contain REJECT in any of their
events2. Therefore, option B is correct, while options A, C and D are incorrect because they do not
follow the correct syntax for using the transaction command or the search command.
31.We can use the rename command to _____ (Select all that apply.)
A. Change indexed fields
B. Exclude fields from our search results
C. Extract new fields from our data using regular expressions
D. Give a field a new name at search time
Answer: D
32.Which of the following statements are true for this search? (Select all that apply.) SEARCH:
sourcetype=access* |fields action productld status
A. is looking for all events that include the search terms: fields AND action AND productld AND status
B. users the table command to improve performance
C. limits the fields are extracted
11 / 12
https://www.dumpsinfo.com/
D. returns a table with 3 columns
Answer: C
33.Which are valid ways to create an event type? (select all that apply)
A. By using the searchtypes command in the search bar.
B. By editing the event_type stanza in the props.conf file.
C. By going to the Settings menu and clicking Event Types > New.
D. By selecting an event in search results and clicking Event Actions > Build Event Type.
Answer: C, D
Explanation:
Event types are custom categories of events that are based on search criteria. Event types can be
used to label events with meaningful names, such as error, success, login, logout, etc. Event types
can also be used to create transactions, alerts, reports, dashboards, etc. Event types can be created
in two ways:
By going to the Settings menu and clicking Event Types > New. This will open a form where you can
enter the name, description, search string, app context, and tags for the event type.
By selecting an event in search results and clicking Event Actions > Build Event Type. This will open
a dialog box where you can enter the name and description for the event type. The search string will
be automatically populated based on the selected event.
Event types cannot be created by using the searchtypes command in the search bar, as this
command does not exist in Splunk. Event types can also be created by editing the event_type stanza
in the transforms.conf file, not the props.conf file.
34.The fields sidebar does not show________. (Select all that apply.)
A. interesting fields
B. selected fields
C. all extracted fields
Answer: C
Explanation:
The fields sidebar is a panel that shows the fields that are present in your search results2. The fields
sidebar does not show all extracted fields, which are fields that are extracted from your raw data
using various methods such as regular expressions, delimiters or key-value pairs2. The fields sidebar
only shows selected fields and interesting fields2. Selected fields are fields that you choose to display
in your search results by clicking on them in the fields sidebar or by using the fields command2.
Interesting fields are fields that appear in at least 20 percent of events or have high variability among
values2. Therefore, option C is correct, while options A and B are incorrect because they are types of
fields that the fields sidebar does show.
Powered by TCPDF (www.tcpdf.org)
12 / 12
https://www.dumpsinfo.com/
http://www.tcpdf.org