Anda di halaman 1dari 28

5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Search Subscribe

1-877-626-2690

Solutions For: Video Courses Resources Pricing About Blog Login

Join

Blog > Analysis > XER Reader is a free tool to run DCMA 14 point checks

XER Reader is a free tool to run DCMA 14


point checks
MAY 19, 2014 BY MIMOUNE DJOUALLAH 38 COMMENTS

Share on Facebook Share on Twitter

Why the DCMA 14 Point


Checks Matter
Usually when I review a Primavera P6 schedule, I
use the excellent reference by Ron Winter, or at
least a subset of all those checks. I am probably
being biased here, but for the Primavera users
community, no one would argue that actual dates in the feature are bogus, or why
negative oat is a no go, or why constraints are evil and dates should mostly be driven
by logic. Usually a Primavera schedule log can tell you a lot about the quality of the
schedule.

Then the unexpected has happened. I had to deal with MS Project le for a new
assignment. I was quite concerned aboutthe best way to approach a PM that used
MS Project exclusively, and tell him, maybe there is a better approach and although
MS Project permitted incomplete work in the past,it is stillnonsense.

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 1/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Fortunately there is theDCMA 14point checks which addressed my exact situation,


as a Primavera P6 user, some metrics does not make any sense, Ron again :), has
published a review of DCMA 14 from a Primavera expert perspective. For me the
metrics themselvesare not that relevant, whats important is to have a common
ground where you can talk to someone who has a dierent approach to planning
accordingtothe way theirpreferred planning software works.

I am quoting here a passage from the DCMA 14point checkstraining manual, which
better explains the purpose of the metrics.

The DCMA 14 Point Schedule Metrics were developed to identify potential


problem areas with a contractors IMS. These metrics provide the analyst with a
framework for asking educated questions and performing follow-up research.
The identication of a red metric is not in and of itself synonymous with
failure but rather an indicator or a catalyst to dig deeper in the analysis for
understanding the reason for the situation.

Fine, but I only use Primavera P6, why should I


care ?
Fair enough, why should you care if there are already superior alternatives in the
industry ? In my humble opinion, the fact that Primavera includes the metrics in their
EPPM product will reinforce DCMA 14 as an industry standard, and it is imperative to
understand the deciency of the standard in case one day you have to deal with an
overexcited client representative that may reject your schedule simply because it
failed one test. (Again thats not the purpose of metrics).

Introducing XER Reader


XER-Reader is a free Excel utility that reads a Primavera P6 XER le and dumps the
data into Excel to generate:

Project Statistics
A Gantt chart
DCMA 14 metrics for your schedule.

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 2/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Before you start, please understand that XER Reader is just a personal project, there
is no guarantee whatever that the results are correct, or it does even work for your
particular windows installation, the utility is free to use and the code is released under
an open source license.

Download: XER-READER
You can view the wiki with more technical details here, New revisions will be issued
regularly so if you want to report bugs or suggestions, make sure you are using the
latest release. For bug reporting, send a screenshot of the error and your systems
description (32 or 64 bit), and I will have a look and try to x it.

How to use the XER-Reader Spreadsheet


Step 1 Activate the macro
When you open the excel le, make sure you enable the content, the screenshots
weredone under excel 2007, so for other versions it make look slightly dierent.
Basically you are allowing Excel to run the code in the macro.

Step 2- Open an XER le


Click on the button Load an XER le, select the le you want to analyze.

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 3/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

The macro will generate three new Tabs.

2.1 Metrics in the dashboard Tab

Only the rst 10 Metrics of DCMA 14 are included. The rest ( Missed Task, Critical Path
test,CPLI, BEI) either require a baseline or should be done manually withinthe
planning software.

The DCMA 14 Metrics count only Uncompleted Tasks , so Milestones, Level of Eort,
WBS Summary Activities and completed Activitiesare excluded from the analysis.

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 4/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

I added a separate section for Milestones. Please note that Milestone are not included
in the DCMA 14 standard, but in my view excluding the milestones is wrong.

2.2 A detailed report by Activity in Details_report Tab

2.3- A WBS view in WBS Tab

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 5/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

2.4 The list of tables imported from the XER Table_Summary tab.

When you click on the table name, the data will be shown.

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 6/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Step 3- Draw a Bar Chart


When you click on the button Draw Bar Chart , the macro will generate a Gantt
Chart and add columns for Labor units, Performance % complete etc

Step 4- Deleting Data


If you want to delete the XER data, click on the button Clear the XER, the same goes
for wanting to delete everything including the reports; delete Clear the reports,
please note that if you delete the XER data, you can not generate the gantt chart
unless you import the XER data again.

Genesis
Initially the spreadsheet was for MS Project, using only formulas and include extra
features that the software permits but make no sense whatsoever (like manual task
mode!!!, and constraints for summary Task). Then after a random search I came
across this article, although I am quite familiar with MS Access, I never knew it was
possible to use the jet database engine with Excel to develop a database application.

Although technically it is much easier to write a macro for MS project, because VBA is
already included (thats one of the strength of MS Project); I was more interested in
Primavera (because thats what I do for living), as I am more familiar with the
XERformat. A good example on how to load an XERis already provided in the
XERparser and builder utility (although I am using a dierent code, as it is much
faster).

Once the tables are loaded into Excel, the rest is a bunch of SQL Queries, so why limit
to DCMA metrics? Lets add a gantt chart and some Earned Value Management
features.
https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 7/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Please note that some data isvery easy to query from an XERle like budget hours,
actual hours, remaining duration in hours, etc; as they are stored in a simple list of
records, others not so much. For example, WBS (Parent node, child node), calendar (a
blob with xml like structure).

You might ask, why no S-curve? The answer is simple: the spread is not stored in the
XER.It has to be calculated, which involves some crazy code (hint: extract list of non
working time from the calendar that may or may not be inherited from global
calendars and then apply it to start and nish dates of tasks, taking into account
resource curves if they arent linear! And dont forget the suspend and resume
dates.

Wrap Up
You dont need to be a professional programmer to use VBA for EXCEL (I am not by
the way), If you already use Excel, you are already familiar with the basics. There are
plenty of free tutorials and resources in the internet, and the community is very
friendly and helpful.

Maybe it is time to start that macro recorder, and dont be intimidated by some
obscure technique, I am still trying to grasp those recursive algorithms.

For now, enjoy using XER-Reader to assess your schedule against the DCMA 14 point
checks. I hope it helps you improve your schedules.

Filed Under: Analysis, Import / Export, P6 Professional

Subscribe to Plan Academy's Primavera P6 Blog


Join1000'soffellowProjectControlsProfessionals!
GetPlanAcademy'slatestarticlesstraighttoyourinbox.Enteryourworkemailaddressbelow:

*Yes,IagreetogetPlanAcademy'sarticlesbyemail.IknowthatIcanunsubscribeatanytime.

EnterYourWorkEmailAddress....

Subscribe

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 8/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

AboutMimouneDjouallah
Mimoune is a Project Controls Engineer with solid Planning and Cost
experience in Oil/Gas EPC projects, Drop him a line at
mimoune.djouallah@gmail.com

You Might Also Like


How to Print a Calendar from Primavera P6, with some help
What is the DCMA 14-point schedule assessment?

Comments

zoltan paly says:


May 20, 2014 at 6:51 am
this does not work for me I get an error when I try to load an xer le

Reply

PlannerTuts says:
May 20, 2014 at 9:27 am
Care to share the error with us?

Reply

Tokunbo says:
May 22, 2014 at 1:47 pm
Very good tool, works perfectly well, though does not support multi-projects.

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 9/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

How does one get to reduce the time scale of the gantt chart from
weeks/months/years to say quarters/years.

Thanks for this. It is a life saver.

Reply

mimoune djouallah says:


June 07, 2014 at 1:46 am
now it does support multi project.

Reply

mimoune djouallah says:


May 22, 2014 at 9:16 pm
Tokunbo

thanks for your feedback, regarding multi project, maybe i can add it later, when i
gure out the best way to use a combobox ( because i have no clue how to do it
properly)
for the timescale it is hard coded :), all i can suggest is to select all the columns in
the gantt chart and adjust their width, you can hide the row for the weeks.
please keep in mind the whole thing is just a hack.
regards
mimoune

Reply

Tokunbo says:
May 23, 2014 at 2:20 am
Thanks Mimoune,

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 10/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

I take it that all the codes for the Gantt Chart can be found in the Gantt module? I
know a bit of VBA, so will review the codes this weekend and see if there is any
tweak I can make so that the timescale is adjustable.

If I succeed, Ill let you know and send the le to you.

Keep up the good work.

TK

Reply

mimoune djouallah says:


May 23, 2014 at 4:04 am
Tokunbo

yes, time scale and drawing is in the module Gantt, good luck with the spaghetti
code.

regards
mimoune

Reply

Nicholas says:
May 29, 2014 at 6:04 am
Hi Mimoune,

as a fellow VBA Programmer in a Primavera Environment I have to say:

Nice programming!
The code looks pretty well written to me. A bit light on the comments maybe. aahh
the lazyness.

This is pretty impressive work. Keep it up


https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 11/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Regards,
Nicholas

Reply

mimoune says:
May 29, 2014 at 10:21 am
Nicholas

thanks a lot, I appreciate your comments, yes denitely, i need to add more
comments.

Regards
mimoune

Reply

Nick Jackson says:


May 29, 2014 at 6:38 am
Nice tool thanks.

I was wondering, is it possible to export to Excel, allow a project manager to edit


cells for updated actuals (starts, nishes, suspends and resumes etc.), and then re-
import it into my schedule for progress updates?

I do it manually right now.

Reply

mimoune says:
May 29, 2014 at 10:35 am
Nick

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 12/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

you can use the Primavera export facility for that, you dont need any external utility
regards
mimoune

Reply

NicK Jackson says:


May 29, 2014 at 11:01 am
and I just found the video on that! Many thanks.

Your spreadsheet however is much easier to read for a non-planner to


update though, because it looks similar to the programme. The excel facility
gives a pure data output which needs some approachable formatting to
enable others to understand it and what boxes to edit (in fact I have to make
sure cells are looked and use colour formatting).

Thanks again really good tool.

Reply

mimoune says:
May 29, 2014 at 11:34 am
Nick

ah i see, in this case, you can give the guys the excel gantt chart, then they can add
actual dates, then you lookup the new values with the primavera excel export and
import back to P6.

regards
mimoune

Reply

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 13/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Ash says:
June 05, 2014 at 5:36 am
Very impressive.
Keep it up.
Be nice if you can add some manning histograms lol. make alife really easy for some
of us? thoughts??
Thanks,

Ash

Reply

mimoune djouallah says:


June 06, 2014 at 8:02 am
Thanks Ash

S curve !!, i cant nd any reference on how to deal with resource curves.
for the simple case of normal Task dependent, i guess it can be
straightforward, but resources dependent can be quite complex.

so for the simple cases, it can be done

Reply

elhoussany says:
June 05, 2014 at 3:51 pm
thanks, Nice programme

Reply

mimoune djouallah says:


June 06, 2014 at 8:13 am

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 14/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

thanks elhoussany

Reply

Ismael Munoz says:


June 25, 2014 at 5:35 pm
Mimoune,

Woao, it works very well and can save hours of ltering.

In order to collaborate, these are some other checks I usually use:

Act. with Actual Dates > DD


Act. Not Strd, Dur. % Comp > 0%
Act. Not Strtd, Physic. % Comp > 0%
Act. In Prog, Dur. % Comp. = 0%
Act. In Prog, Physic. % Comp. = 0%
Act. Comp, Dur. % Comp. < 100%
Act. Comp, Physic. % Comp. < 100%
Logic Density ( #relationships / # Act. ; Target: 2.5 or less )
Calendars (Target: 5 or less)

Maybe by denition I am wrong but I also consider as hard contraint those that can
generate negative oat (Finish On, Start On)

Thanks for sharing and please: keep going!

Kind regards,
Ismael

Reply

mimoune djouallah says:


June 25, 2014 at 9:41 pm

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 15/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Ismael

thanks for the nice words

Act. with Actual Dates > DD this check is already done in the invalid actual
dates.

for the rest, I see what you are suggesting, it make perfect sense.

regarding hard constraints, if you read Ron paper, the hard constraints is
the constraints that overwrite the logic, but I maybe I am wrong !!

Regards
mimoune

Reply

Ismael Munoz says:


June 25, 2014 at 10:27 pm
Mimoune,

Sorry for my bad English, I really know that Ron Winter and You are
completely right

What I suggest is that it could be a good idea to monitor those


constraints that can generate negative oat because they can
become a real nightmare and some schedulers abuse of them to
force dates.

Just my humble opinion

Keep it up!
Ismael

Reply

mimoune djouallah says:

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 16/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

June 28, 2014 at 12:27 am


Ismael

xer reader is open source utility, feel free to adjust it to your


particular needs, you can easily modify the code to add any
metrics you think it useful to you.

Regards
Mimoune

Reply

Hossam Hefnawy says:


August 08, 2014 at 4:49 am
thanks .. its quite useful..but are these standards applied practically ?, that I
applied it on some examples which already found in Primavera program and found
out many of the violations .

Reply

AMES says:
August 28, 2014 at 10:17 am
When I run the macros it is erroring out
VBA Error: Run-0time error 2147217900 (80040e14):

[Miscrosoft]ODBC Excel Driver] TASKPRED$ is not a valid.

Any ideas. The macro is not running for me. I am using latest version of
oce/windows. I did enable macros etc.

Reply
https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 17/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Paul Ross says:


October 17, 2014 at 10:52 am
I have an xer le that wont run the schedule diagnosis, is there someway I
can send it to you so you can see if its an xer problem, or some code that needs an
update?

Good tool, it works wonderfully on the samples given, is my le just too big?

Regards, Paul Ross

Reply

mimoune djouallah says:


October 17, 2014 at 11:48 pm
Hi Paul

please send it to mimoune dot djouallah at gmail dot com

regards
Mimoune

Reply

mohsen says:
June 19, 2015 at 4:06 pm
How can this tool be used to extract baseline cost data (i.e., cash ow
distribution over time) at the project or EPS root level?

Reply

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 18/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Jan Tukaj says:


July 31, 2015 at 2:12 am
Hello Mimoune,

Thank you for very nice tool,

Best Regards,
Jan

Reply

Yassine says:
September 03, 2015 at 8:11 am
Hi Mimoun,

Great job, I am really enjoying it.


One easy question:
I cant nd the Draw Bar Chart in the recent le. Did you remove it?

Reply

imran khan says:


September 06, 2015 at 6:56 pm
Hello,

Please advise I am getting following error when I chose calendar to show.

Run-time error 6:
Overow.

when click debug visual basic highlights the following

c = c + UBound(splitTarget, 1)

Many thanks I want to print calenders with this excellent tool you have developed.
https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 19/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Cheers

Reply

Mohamed says:
November 08, 2015 at 1:28 pm
Mimoune

Thank you very much. it work perfectly using Oce 2013. Is there any other updated
version you can share?

Once again thank you

Mohamed

Reply

Femi Akinlade says:


February 13, 2016 at 10:44 am
Dear Mimoune,

Please advise I am getting following error when I click on Load XER File Run-time
error 438:

when click debug visual basic highlights the following

Worksheets(dashboard).ComboBox1.ListFillRange = dashboard!AM2:AN &


lastrow.

Waiting for your response.

Thanks,

Femi

Reply
https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 20/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Garry says:
March 14, 2016 at 5:05 am
I get the following error when I try and load an XER le. Is there an issue with
Excel 2010?
I have the macros and active X settings set to enable.
Run-time error 438:
Object doesnt support this property or method

Reply

Ryan says:
March 22, 2016 at 10:00 am
Hi,
I have tried the le. It seems really interesting.
I have faced an error as follow:

Run-time error -2147217913 (80040e07):


[Microsoft][ODBC Excel Driver] Data type mismatch in criteria expression

and when I push DEBUG, I see below:

With Worksheets(dashboard)
.Activate
cnn.Open
> rssql.Open strsqlFinal, cnn
.Cells(10, 15).CopyFromRecordset rssql
.Range(o10:r10).Copy
.Range(n10).PasteSpecial Paste:=xlPasteValues, Transpose:=True
.Range(o10:r10).ClearContents
.Range(n10:n14).NumberFormat = #,##0
.Cells(1, 1).Select
.Columns(m:n).AutoFit

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 21/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

cnn.Close
Set cnn = Nothing
Set rssql = Nothing

Reply

Humberto Gonzalezx A. says:


May 03, 2016 at 8:11 am
Al correr el programa(Xer Reader 0.79.3 y 079.6) me indica un error
-2147217913 (80040e07) en tiempo de ejecucin:

[Microsoft][Controlador OBDC Excel] No coinciden los tipos de datos de la


expresin de criterios

Lo corro con los ejemplos que estan en la pagina Sample Xer 01

Tengo Oce 2013

Reply

Zabi says:
June 06, 2016 at 11:06 pm
Do you have a copy which works for MS Project? Thanks

Reply

Nathan Card says:


July 13, 2016 at 4:15 pm
I keep getting Run-time error 429. Debug takes me to this line:
Set cnn = CreateObject(ADODB.Connection)

Is anyone else having this problem?

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 22/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Reply

Udo Walter says:


October 27, 2016 at 5:12 am
Hi, nice tool But I got an runtime error viewing the gantt chart.

[Microsoft][ODBC Excel Driver] The connection for viewing your linked Microsoft Excl
Worksheet was lost.

Debugging stoped here:

********************** Minumum Gantt Start date and Finish


cnn.Close
strsql = SELECT Min([Start]),Max([Finish]) from [base$]
cnn.Open
rssql.Open strsql, cnn
Gantt_Start = rssql.elds(0).Value
Gantt_Finish = rssql.elds(1).Value
Worksheets(base).Delete

regards Udo

Reply

Nelson HM says:
February 21, 2017 at 4:27 am
Excellent tool and eort!

Reply

Leave a Reply

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 23/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Your email address will not be published. Required elds are marked *

Comment

Name *

Email *

PostComment

Get Primavera P6 Articles by Email

*Yes,IagreetogetPlanAcademy'sarticlesbyemail.IknowthatIcan
unsubscribeatanytime.

EnterYourWorkEmailAddress....

Subscribe

Plan Academy Blog Feed

SearchourBlogArticles... Search

POPULAR ARTICLES

Construction Scheduling Software How To Get


The Most Out Of Your Solution

13 Project Controls Books That Every Project


Controller Should Have In Their Library
https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 24/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Delay Claim: Lessons From A Primavera P6


Planner

How to Show the Critical Path in Primavera P6

POBS Data Bug Fixed in Oracle Primavera P6


16.1

5 Things You Should Know About Primavera P6


Calendars

Whats the dierence between Primavera P6


PPM and Primavera P6 EPPM?

CPM Scheduling 101: How Primavera Scheduling


Works

Measuring Project Progress : 6 Methods You


Should Know

Primavera P6 16.1 Is Released! Everything You


Need To Know

Critical Path vs Longest Path


Graphing a P6 Resource S-Curve in Excel

Physical Percent Complete in Primavera P6 the


Missing Guide

Understanding Primavera XER Files

Schedule % Complete in Oracle Primavera The


Missing Guide (Part 1)
Duration Percent Complete in Primavera P6
the Missing Guide

XER File Slow To Import to P6? Try Cleaning


POBS Data

5 Things I Learned At The AACE Project Controls


Conference

Construction Project Management Certication


Is It For You?

11 Killer Interview Questions For Hiring A


Project Controller
Units Percent Complete in Primavera P6 the
Missing Guide

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 25/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

What is the DCMA 14-point schedule


assessment?
7 Earned Value Management Formulas To Make
Your Life Easier As A Project Controls
Professional

Compress A Schedule Using Duration Types in


Primavera P6

Primavera P6s Longest Path Conundrum (and


How To Fix It)

Browse All Topics

Search Plan Academy


Please use the form below to nd the content you are looking for, use the lter tools to
search by content type.

FindTutorials,Coursesandmore... Search

Posts Tutorials Webinars Ebooks Courses

Lessons

ABOUT LEARN LEGAL STUFF CONTACT


PRIMAVERA P6
About Terms of Use Plan Academy Inc.
Careers Primavera P6 Membership Terms Hamilton, ON
Training Blog Canada.
Call For Trainers Privacy
info@planacademy.com
https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 26/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

Write for Plan Online Video


1-877-626-
Academy Courses
Our Instructors & How-to Tutorials
2690
Authors Resource Library
Customer Case Get Help
Studies
Top 10 Benets of
enrolling at Plan
Academy
Frequently Asked
Questions
Contact Us

Copyright 2017 Plan Academy Inc. All Rights Reserved

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 27/28
5/11/2017 XERReaderisafreetooltorunDCMA14pointchecks

https://www.planacademy.com/xerreaderfreetoolrundcma14pointchecks/ 28/28

Anda mungkin juga menyukai