1 Research Question & Response Variable

What is your research question and your response variable? Give a detailed answer.

Our research question is: Do, Temperature, Pressure, Operator Experience, Machine Calibration, and their interactions, reduce the defect rate in the production process? The response variable is the defect rate measured by the rate in 10,000.

2 Factors, Levels, and Design Choice

List your factors and their levels. What is your design choice? Discuss any constraints or restrictions on randomization. Report your design table which includes run randomization.

The factors are Temperature, Pressure, Operator Experience, and Machine Calibration. Each factor has two levels, high and low. The design is a 2^4 unreplicated full factorial. There are no constraints or restrictions on randomization in this experiments.

2^4 Unreplicated Factorial-Randomization Schedule
Temperature Pressure Operator Calibration RunOrder
High Low Low Low 1
High High Low High 2
Low Low Low High 3
High Low High Low 4
High High Low Low 5
Low High Low Low 6
Low High High Low 7
High High High High 8
Low High Low High 9
High High High Low 10
High Low Low High 11
Low Low Low Low 12
Low High High High 13
Low Low High Low 14
High Low High High 15
Low Low High High 16

3 Analysis Results

Write a comprehensive paragraph on the results of your analysis. Include an explanation of how you reached your conclusions.

The main effects Temperature,Pressure,and Machine Calibration are the primary estimators of defect rate in the system. When looking at the half-normal plot, effects A,B, and D are clearly separated from the linear trend. Also when looking at the Pareto plot, the largest of the effect sizes are Temperature, Pressure, and Machine Calibration. When looking at the two way interaction plots, all the pairs of treatments show parallel lines which indicates no interaction. The MSE of Temperature, Pressure, and Machine Calibration are the highest in the anova table by a great margin. Consolidating the analysis, we can determine that Temperature, Pressure, and Machine Calibration are the driving factors in our model when explaining defect rate.

Response : response
                                           Df  Sum Sq Mean Sq F value Pr(>F)
MODEL                                      15 1502.19  100.15               
 Temperature                                1  418.95  418.95               
 Pressure                                   1  612.11  612.11               
 Temperature:Pressure                       1   32.81   32.81               
 Operator                                   1   80.64   80.64               
 Temperature:Operator                       1    1.16    1.16               
 Pressure:Operator                          1    1.51    1.51               
 Temperature:Pressure:Operator              1    0.51    0.51               
 Calibration                                1  300.46  300.46               
 Temperature:Calibration                    1    0.05    0.05               
 Pressure:Calibration                       1   13.78   13.78               
 Temperature:Pressure:Calibration           1   10.60   10.60               
 Operator:Calibration                       1    9.23    9.23               
 Temperature:Operator:Calibration           1    3.64    3.64               
 Pressure:Operator:Calibration              1    2.12    2.12               
 Temperature:Pressure:Operator:Calibration  1   14.62   14.62               
RESIDUALS                                   0    0.00                       
CORRECTED TOTAL                            15 1502.19                       


Attaching package: 'qqplotr'
The following objects are masked from 'package:ggplot2':

    stat_qq_line, StatQqLine

4 Model Reduction

Is it possible for you to reduce the model? Explain why or should not, or if you should and how you would do it.

We would reduce the model to just the three main effects of Temperature, Pressure, and Machine Calibration. As talked about in the analysis section, these three effects account for the largest difference in defect rate. We should reduce the model as this will allow us to gather a larger sample size per treatment as funding can be invested in multiple trials. We are able to get more trials as the amount of factors are lowered as compared to the full model.

5 Power

Explain why calculating power in this design in meaningless.

There is no statistical testing due to it being an unreplicated design and therefore there is no power in this study. Power is used to determine the chance of finding a difference if there is a difference in a statistical test. As no test was conducted, there is no way to compute power.

6 Factorial Regularities

Do the results of your factorial experiment display sparsity, heredity, and hierarchy? Support your answer with your results.

This study does exhibit sparsity as the three treatments out of the fifteen total treatments exhibit the largest of the effect on the defect rate. This study does exhibit hierarchy as three of the four main effects are the most significant in the model. Heredity is not as applicable as no interaction terms are significant. Although heredity does show up in the form of no interaction terms being strictly made up of insignificant main effects.So it is impossible for an interaction to be significant without at least one of its parent effects being significant.

7 Limitations & What You’d Do Next

Discuss issues you see with this design. Do you have issues with Confounding effects? Are there design weaknesses? Give follow up experiment ideas.

The biggest issue with this design is that there is no replication. Due to this, statistical tests can not be conducted on the data. Without replication, we have no way of knowing that the results we got are not outliers and actually represent the true effect that each treatment has on the system. There are no confounding effects in the system. For further experiments, consider using the reduced model to save on costs and get more trials per treatment.

LS0tDQp0aXRsZTogIlNUQTMyMCBGaW5hbCBFeGFtIFRlYW0gNCINCmF1dGhvcjogIlRlYW0gNDogRXZhbiBQZXJzb2Zza3ksIFphY2thcnkgUGV0cmFzZWssIEFsZXggQ29vcGVyIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIHRvY19mbG9hdDogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICB0b2NfY29sbGFwc2VkOiB5ZXMNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBzbW9vdGhfc2Nyb2xsOiB5ZXMNCiAgICB0aGVtZTogbHVtZW4NCiAgcGRmX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIGZpZ193aWR0aDogMw0KICAgIGZpZ19oZWlnaHQ6IDMNCiAgd29yZF9kb2N1bWVudDogDQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6IDQNCiAgICBmaWdfY2FwdGlvbjogeWVzDQogICAga2VlcF9tZDogeWVzDQplZGl0b3Jfb3B0aW9uczogDQogIGNodW5rX291dHB1dF90eXBlOiBpbmxpbmUNCi0tLQ0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQojVE9DOjpiZWZvcmUgew0KICBjb250ZW50OiAiVGFibGUgb2YgQ29udGVudHMiOw0KICBmb250LXdlaWdodDogYm9sZDsNCiAgZm9udC1zaXplOiAxLjJlbTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGNvbG9yOiBuYXZ5Ow0KICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KfQ0KDQoNCmRpdiNUT0MgbGkgeyAgICAgLyogdGFibGUgb2YgY29udGVudCAgKi8NCiAgICBsaXN0LXN0eWxlOnVwcGVyLXJvbWFuOw0KICAgIGJhY2tncm91bmQtaW1hZ2U6bm9uZTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpub25lOw0KICAgIGJhY2tncm91bmQtcG9zaXRpb246MDsNCn0NCg0KaDEudGl0bGUgeyAgICAvKiBsZXZlbCAxIGhlYWRlciBvZiB0aXRsZSAgKi8NCiAgZm9udC1zaXplOiAyMnB4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgY29sb3I6IERhcmtSZWQ7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgZm9udC1mYW1pbHk6ICJHaWxsIFNhbnMiLCBzYW5zLXNlcmlmOw0KfQ0KDQpoNC5hdXRob3IgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICBmb250LXNpemU6IDE1cHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmb250LWZhbWlseTogc3lzdGVtLXVpOw0KICBjb2xvcjogbmF2eTsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpoNC5kYXRlIHsgLyogSGVhZGVyIDQgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8NCiAgZm9udC1zaXplOiAxOHB4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgZm9udC1mYW1pbHk6ICJHaWxsIFNhbnMiLCBzYW5zLXNlcmlmOw0KICBjb2xvcjogRGFya0JsdWU7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KaDEgeyAvKiBIZWFkZXIgMSAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICBmb250LXdlaWdodDogYm9sZDsNCiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBjb2xvcjogZGFya3JlZDsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQpoMiB7IC8qIEhlYWRlciAyIC0gYW5kIHRoZSBhdXRob3IgYW5kIGRhdGEgaGVhZGVycyB1c2UgdGhpcyB0b28gICovDQogICAgZm9udC1zaXplOiAxOHB4Ow0KICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGNvbG9yOiBuYXZ5Ow0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCmgzIHsgLyogSGVhZGVyIDMgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8NCiAgICBmb250LXNpemU6IDE2cHg7DQogICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IG5hdnk7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KaDQgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IGRhcmtyZWQ7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KLyogQWRkIGRvdHMgYWZ0ZXIgbnVtYmVyZWQgaGVhZGVycyAqLw0KLmhlYWRlci1zZWN0aW9uLW51bWJlcjo6YWZ0ZXIgew0KICBjb250ZW50OiAiLiI7DQoNCmJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9DQoNCi5oaWdobGlnaHRtZSB7IGJhY2tncm91bmQtY29sb3I6eWVsbG93OyB9DQoNCnAgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9DQoNCn0NCmBgYA0KDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGLCBjb21tZW50PU5BLCB3YXJuaW5nPUYpDQoNCiMgU2V0dXAgYW5kIERlc2lnbiBEZWZpbml0aW9uDQoNCiMgTG9hZCByZXF1aXJlZCBsaWJyYXJpZXMNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShlZmZlY3RzKSAgICAjIEZvciBpbnRlcmFjdGlvbiBwbG90cw0KbGlicmFyeShzYXNMTSkNCmxpYnJhcnkoRnJGMikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGVmZmVjdHNpemUpDQpsaWJyYXJ5KGthYmxlRXh0cmEpDQoNCnNldC5zZWVkKDA5MDgyMDAzKSAjIFJlcHJvZHVjaWJpbGl0eQ0KYGBgDQoNCiMgUmVzZWFyY2ggUXVlc3Rpb24gJiBSZXNwb25zZSBWYXJpYWJsZQ0KDQpXaGF0IGlzIHlvdXIgcmVzZWFyY2ggcXVlc3Rpb24gYW5kIHlvdXIgcmVzcG9uc2UgdmFyaWFibGU/IEdpdmUgYSBkZXRhaWxlZCBhbnN3ZXIuDQoNCk91ciByZXNlYXJjaCBxdWVzdGlvbiBpczogRG8sIFRlbXBlcmF0dXJlLCBQcmVzc3VyZSwgT3BlcmF0b3IgRXhwZXJpZW5jZSwgTWFjaGluZSBDYWxpYnJhdGlvbiwgYW5kIHRoZWlyIGludGVyYWN0aW9ucywgcmVkdWNlIHRoZSBkZWZlY3QgcmF0ZSBpbiB0aGUgcHJvZHVjdGlvbiBwcm9jZXNzPyBUaGUgcmVzcG9uc2UgdmFyaWFibGUgaXMgdGhlIGRlZmVjdCByYXRlIG1lYXN1cmVkIGJ5IHRoZSByYXRlIGluIDEwLDAwMC4NCg0KIyBGYWN0b3JzLCBMZXZlbHMsIGFuZCBEZXNpZ24gQ2hvaWNlDQoNCkxpc3QgeW91ciBmYWN0b3JzIGFuZCB0aGVpciBsZXZlbHMuIFdoYXQgaXMgeW91ciBkZXNpZ24gY2hvaWNlPyBEaXNjdXNzIGFueSBjb25zdHJhaW50cyBvciByZXN0cmljdGlvbnMgb24gcmFuZG9taXphdGlvbi4gUmVwb3J0IHlvdXIgZGVzaWduIHRhYmxlIHdoaWNoIGluY2x1ZGVzIHJ1biByYW5kb21pemF0aW9uLiANCg0KVGhlIGZhY3RvcnMgYXJlIFRlbXBlcmF0dXJlLCBQcmVzc3VyZSwgT3BlcmF0b3IgRXhwZXJpZW5jZSwgYW5kIE1hY2hpbmUgQ2FsaWJyYXRpb24uIEVhY2ggZmFjdG9yIGhhcyB0d28gbGV2ZWxzLCBoaWdoIGFuZCBsb3cuIFRoZSBkZXNpZ24gaXMgYSAyXjQgdW5yZXBsaWNhdGVkIGZ1bGwgZmFjdG9yaWFsLiBUaGVyZSBhcmUgbm8gY29uc3RyYWludHMgb3IgcmVzdHJpY3Rpb25zIG9uIHJhbmRvbWl6YXRpb24gaW4gdGhpcyBleHBlcmltZW50cy4NCg0KDQpgYGB7ciBkZXNpZ24sIGluY2x1ZGU9VH0NCg0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIERlZmluZSBGYWN0b3JzIGFuZCBMZXZlbHMNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQojIEV4YW1wbGU6IDJeNCBmYWN0b3JpYWwsIHNpbmdsZSByZXBsaWNhdGUgDQoNCmJhc2VfZGVzaWduIDwtIGV4cGFuZC5ncmlkKA0KICBUZW1wZXJhdHVyZSA9IGMoIkxvdyIsICJIaWdoIiksDQogIFByZXNzdXJlID0gYygiTG93IiwgIkhpZ2giKSwNCiAgT3BlcmF0b3IgPSBjKCJMb3ciLCAiSGlnaCIpLA0KICBDYWxpYnJhdGlvbiA9IGMoIkxvdyIsICJIaWdoIikNCikNCg0KI0NyZWF0ZSBibG9ja2luZyB2YXJpYWJsZSBvbiByZXBsaWNhdGlvbg0KDQpkZXNpZ24gPC0gYmFzZV9kZXNpZ25bcmVwKDE6bnJvdyhiYXNlX2Rlc2lnbiksIHRpbWVzID0gMSksIF0NCg0KZGVzaWduIDwtIGRlc2lnbiAlPiUNCiAgbXV0YXRlKFJ1bk9yZGVyID0gc2FtcGxlKDE6bigpKSkgJT4lDQogIGFycmFuZ2UoUnVuT3JkZXIpDQoNCmRlc2lnbiAlPiUNCiAga2JsKGNhcHRpb249IjJeNCBVbnJlcGxpY2F0ZWQgRmFjdG9yaWFsLVJhbmRvbWl6YXRpb24gU2NoZWR1bGUiLCBhbGlnbj0iYyIpICU+JQ0KICBrYWJsZV9jbGFzc2ljKGZ1bGxfd2lkdGg9RikgJT4lDQogIGNvbHVtbl9zcGVjKDUsIHdpZHRoPSIzY20iKQ0KYGBgDQoNCg0KIyBBbmFseXNpcyBSZXN1bHRzDQoNCldyaXRlIGEgY29tcHJlaGVuc2l2ZSBwYXJhZ3JhcGggb24gdGhlIHJlc3VsdHMgb2YgeW91ciBhbmFseXNpcy4gSW5jbHVkZSBhbiBleHBsYW5hdGlvbiBvZiBob3cgeW91IHJlYWNoZWQgeW91ciBjb25jbHVzaW9ucy4NCg0KVGhlIG1haW4gZWZmZWN0cyBUZW1wZXJhdHVyZSxQcmVzc3VyZSxhbmQgTWFjaGluZSBDYWxpYnJhdGlvbiBhcmUgdGhlIHByaW1hcnkgZXN0aW1hdG9ycyBvZiBkZWZlY3QgcmF0ZSBpbiB0aGUgc3lzdGVtLiBXaGVuIGxvb2tpbmcgYXQgdGhlIGhhbGYtbm9ybWFsIHBsb3QsIGVmZmVjdHMgQSxCLCBhbmQgRCBhcmUgY2xlYXJseSBzZXBhcmF0ZWQgZnJvbSB0aGUgbGluZWFyIHRyZW5kLiBBbHNvIHdoZW4gbG9va2luZyBhdCB0aGUgUGFyZXRvIHBsb3QsIHRoZSBsYXJnZXN0IG9mIHRoZSBlZmZlY3Qgc2l6ZXMgYXJlIFRlbXBlcmF0dXJlLCBQcmVzc3VyZSwgYW5kIE1hY2hpbmUgQ2FsaWJyYXRpb24uIFdoZW4gbG9va2luZyBhdCB0aGUgdHdvIHdheSBpbnRlcmFjdGlvbiBwbG90cywgYWxsIHRoZSBwYWlycyBvZiB0cmVhdG1lbnRzIHNob3cgcGFyYWxsZWwgbGluZXMgd2hpY2ggaW5kaWNhdGVzIG5vIGludGVyYWN0aW9uLiBUaGUgTVNFIG9mIFRlbXBlcmF0dXJlLCBQcmVzc3VyZSwgYW5kIE1hY2hpbmUgQ2FsaWJyYXRpb24gYXJlIHRoZSBoaWdoZXN0IGluIHRoZSBhbm92YSB0YWJsZSBieSBhIGdyZWF0IG1hcmdpbi4gQ29uc29saWRhdGluZyB0aGUgYW5hbHlzaXMsIHdlIGNhbiBkZXRlcm1pbmUgdGhhdCBUZW1wZXJhdHVyZSwgUHJlc3N1cmUsIGFuZCBNYWNoaW5lIENhbGlicmF0aW9uIGFyZSB0aGUgZHJpdmluZyBmYWN0b3JzIGluIG91ciBtb2RlbCB3aGVuIGV4cGxhaW5pbmcgZGVmZWN0IHJhdGUuDQoNCmBgYCB7ciBzaW11bGF0aW9uIGRhdGF9DQoNCiMgU2ltdWxhdGUgUmVzcG9uc2UgRGF0YQ0KIyBEZWZpbmUgdHJ1ZSBlZmZlY3RzDQptdSA9IDUwDQplZmZlY3RfQSA9IDgNCmVmZmVjdF9CID0gNg0KZWZmZWN0X0MgPSA0DQplZmZlY3RfRCA9IDMNCmludGVyYWN0aW9uX0FCID0gMw0KaW50ZXJhY3Rpb25fQkQgPSAyDQppbnRlcmFjdGlvbl9CQyA9IDENCmludGVyYWN0aW9uX0NEID0gMQ0KaW50ZXJhY3Rpb25fQUJDID0gMg0KaW50ZXJhY3Rpb25fQUJEID0gMC41DQppbnRlcmFjdGlvbl9BQ0QgPSAwLjUNCmludGVyYWN0aW9uX0JDRCA9IDAuNA0KaW50ZXJhY3Rpb25fQUJDRD0wDQoNCg0KIyBDb252ZXJ0IGZhY3RvcnMgdG8gaW5kaWNhdG9ycw0Kc2ltX2RhdGEgPSBkZXNpZ24gJT4lDQogIG11dGF0ZSgNCiAgICBBID0gaWZlbHNlKFRlbXBlcmF0dXJlID09ICJIaWdoIiwgMSwgLTEpLA0KICAgIEIgPSBpZmVsc2UoUHJlc3N1cmUgPT0gIkhpZ2giLCAxLCAtMSksDQogICAgQyA9IGlmZWxzZShPcGVyYXRvciA9PSAiSGlnaCIsIDEsIC0xKSwNCiAgICBEID0gaWZlbHNlKENhbGlicmF0aW9uID09ICJIaWdoIiwgMSwgLTEpICAgDQogICkNCg0KIyBHZW5lcmF0ZSByZXNwb25zZQ0Kc2ltX2RhdGEkcmVzcG9uc2UgPSBtdSArDQogIGVmZmVjdF9BICogc2ltX2RhdGEkQSArDQogIGVmZmVjdF9CICogc2ltX2RhdGEkQiArDQogIGVmZmVjdF9DICogc2ltX2RhdGEkQyArDQogIGVmZmVjdF9EICogc2ltX2RhdGEkRCArIA0KICBpbnRlcmFjdGlvbl9BQiAqIHNpbV9kYXRhJEEgKiBzaW1fZGF0YSRCICsNCiAgaW50ZXJhY3Rpb25fQkQgKiBzaW1fZGF0YSRCICogc2ltX2RhdGEkRCArDQogIGludGVyYWN0aW9uX0JDICogc2ltX2RhdGEkQiAqIHNpbV9kYXRhJEMgKw0KICBpbnRlcmFjdGlvbl9DRCAqIHNpbV9kYXRhJEMgKiBzaW1fZGF0YSREICsgIA0KICAgIGludGVyYWN0aW9uX0FCQyAqIHNpbV9kYXRhJEEgKiBzaW1fZGF0YSRCICogc2ltX2RhdGEkQyArDQogIGludGVyYWN0aW9uX0FCRCAqIHNpbV9kYXRhJEEgKiBzaW1fZGF0YSRCICogc2ltX2RhdGEkRCArDQogIGludGVyYWN0aW9uX0FDRCAqIHNpbV9kYXRhJEEgKiBzaW1fZGF0YSRDICogc2ltX2RhdGEkRCArDQogIGludGVyYWN0aW9uX0JDRCAqIHNpbV9kYXRhJEIgKiBzaW1fZGF0YSRDICogc2ltX2RhdGEkRCArDQogIGludGVyYWN0aW9uX0FCQ0QgKiBzaW1fZGF0YSRBICogc2ltX2RhdGEkQiAqIHNpbV9kYXRhJEMgKiBzaW1fZGF0YSREICsNCiAgcm5vcm0obnJvdyhzaW1fZGF0YSksIG1lYW4gPSAwLCBzZCA9IDUpDQoNCmBgYA0KDQoNCg0KYGBge3IgQU5PVkF9DQojIEZhY3RvcmlhbCBBTk9WQSANCmFvdjEocmVzcG9uc2UgfiBUZW1wZXJhdHVyZSAqIFByZXNzdXJlICogT3BlcmF0b3IgKiBDYWxpYnJhdGlvbiwgc2ltX2RhdGEpDQptb2RlbD1sbShyZXNwb25zZSB+IFRlbXBlcmF0dXJlICogUHJlc3N1cmUgKiBPcGVyYXRvciAqIENhbGlicmF0aW9uLCBkYXRhPXNpbV9kYXRhKQ0KYGBgDQoNCg0KYGBge3IgZWZmZWN0IHBsb3RzfQ0KDQojIEdlbmVyYXRlIGFsbCBlZmZlY3RzIChpbmNsdWRpbmcgaW50ZXJhY3Rpb25zKQ0KeSA8LSBzaW1fZGF0YSRyZXNwb25zZQ0KDQojIEdlbmVyYXRlIGFsbCBlZmZlY3RzIChpbmNsdWRpbmcgaW50ZXJhY3Rpb25zKQ0KZWZmZWN0cyA8LSBjKA0KICBBICA9IG1lYW4oeSAqIHNpbV9kYXRhJEEpLA0KICBCICA9IG1lYW4oeSAqIHNpbV9kYXRhJEIpLA0KICBDICA9IG1lYW4oeSAqIHNpbV9kYXRhJEMpLA0KICBEICA9IG1lYW4oeSAqIHNpbV9kYXRhJEQpLA0KICBBQiA9IG1lYW4oeSAqIHNpbV9kYXRhJEEgKiBzaW1fZGF0YSRCKSwNCiAgQUMgPSBtZWFuKHkgKiBzaW1fZGF0YSRBICogc2ltX2RhdGEkQyksDQogIEFEID0gbWVhbih5ICogc2ltX2RhdGEkQSAqIHNpbV9kYXRhJEQpLA0KICBCQyA9IG1lYW4oeSAqIHNpbV9kYXRhJEIgKiBzaW1fZGF0YSRDKSwNCiAgQkQgPSBtZWFuKHkgKiBzaW1fZGF0YSRCICogc2ltX2RhdGEkRCksDQogIENEID0gbWVhbih5ICogc2ltX2RhdGEkQyAqIHNpbV9kYXRhJEQpLA0KICBBQkMgID0gbWVhbih5ICogc2ltX2RhdGEkQSAqIHNpbV9kYXRhJEIgKiBzaW1fZGF0YSRDKSwNCiAgQUJEICA9IG1lYW4oeSAqIHNpbV9kYXRhJEEgKiBzaW1fZGF0YSRCICogc2ltX2RhdGEkRCksDQogIEFDRCAgPSBtZWFuKHkgKiBzaW1fZGF0YSRBICogc2ltX2RhdGEkQyAqIHNpbV9kYXRhJEQpLA0KICBCQ0QgID0gbWVhbih5ICogc2ltX2RhdGEkQiAqIHNpbV9kYXRhJEMgKiBzaW1fZGF0YSREKSwNCiAgQUJDRCA9IG1lYW4oeSAqIHNpbV9kYXRhJEEgKiBzaW1fZGF0YSRCICogc2ltX2RhdGEkQyAqIHNpbV9kYXRhJEQpDQopDQoNCiMgQWJzb2x1dGUgZWZmZWN0cw0KYWJzX2VmZmVjdHMgPC0gYWJzKGVmZmVjdHMpDQpuIDwtIGxlbmd0aChhYnNfZWZmZWN0cykNCmhuX3F1YW50aWxlcyA8LSBxbm9ybSgoMTpuIC0gMC41KSAvICgyKm4gKyAxKSkNCg0KIyBTb3J0IGVmZmVjdHMgZnJvbSBsYXJnZXN0IHRvIHNtYWxsZXN0DQphYnNfZWZmZWN0cyA8LSBzb3J0KGFic19lZmZlY3RzLCBkZWNyZWFzaW5nID0gRikNCg0KIyBEYW5pZWwgcGxvdA0KcGxvdChhYnNfZWZmZWN0cywgaG5fcXVhbnRpbGVzLA0KICAgICB4bGFiID0gIkhhbGYtTm9ybWFsIFF1YW50aWxlcyIsDQogICAgIHlsYWIgPSAiQWJzb2x1dGUgRWZmZWN0cyIsDQogICAgIG1haW4gPSAiRGFuaWVsIChIYWxmLU5vcm1hbCkgUGxvdCBvZiBGYWN0b3JpYWwgRWZmZWN0cyIpDQoNCnRleHQoYWJzX2VmZmVjdHMsIGhuX3F1YW50aWxlcywNCiAgICAgbGFiZWxzID0gbmFtZXMoYWJzX2VmZmVjdHMpLA0KICAgICBwb3MgPSA0LCBjZXggPSAwLjgpDQoNCmxpYnJhcnkocXFwbG90cikNCmxpYnJhcnkoZ2dwbG90MikNCg0KIyBTb3J0IGVmZmVjdHMgZnJvbSBsYXJnZXN0IHRvIHNtYWxsZXN0DQphYnNfZWZmZWN0cyA8LSBzb3J0KGFic19lZmZlY3RzLCBkZWNyZWFzaW5nID0gVCkNCg0KIyBQYXJldG8gcGxvdA0KYmFycGxvdChhYnNfZWZmZWN0cywNCiAgICAgICAgbGFzID0gMiwNCiAgICAgICAgeWxhYiA9ICJBYnNvbHV0ZSBFZmZlY3QgU2l6ZSIsDQogICAgICAgIG1haW4gPSAiUGFyZXRvIFBsb3Qgb2YgRmFjdG9yaWFsIEVmZmVjdHMiKSAgICANCg0KDQpgYGANCg0KDQpgYGB7ciBwbG90c30NCg0KIyBJbnRlcmFjdGlvbiBQbG90cw0KDQpwYXIobWZyb3c9YygxLDIpKQ0KDQojIEJhc2UgUiBpbnRlcmFjdGlvbiBwbG90DQojQUINCmludGVyYWN0aW9uLnBsb3QoDQogIHguZmFjdG9yID0gc2ltX2RhdGEkVGVtcGVyYXR1cmUsDQogIHRyYWNlLmZhY3RvciA9IHNpbV9kYXRhJFByZXNzdXJlLA0KICByZXNwb25zZSA9IHNpbV9kYXRhJHJlc3BvbnNlLA0KICBtYWluID0gIkEgw5cgQiIsDQogIHR5cGUgPSAiYiIsDQogIGNvbCA9IGMoImJsdWUiLCAicmVkIiksDQogIHBjaCA9IGMoMTksIDE3KQ0KKQ0KI0FDDQppbnRlcmFjdGlvbi5wbG90KA0KICB4LmZhY3RvciA9IHNpbV9kYXRhJFRlbXBlcmF0dXJlLA0KICB0cmFjZS5mYWN0b3IgPSBzaW1fZGF0YSRPcGVyYXRvciwNCiAgcmVzcG9uc2UgPSBzaW1fZGF0YSRyZXNwb25zZSwNCiAgICBtYWluID0gIkEgw5cgQyIsDQogIHR5cGUgPSAiYiIsDQogIGNvbCA9IGMoImJsdWUiLCAicmVkIiksDQogIHBjaCA9IGMoMTksIDE3KQ0KKQ0KI0FEDQppbnRlcmFjdGlvbi5wbG90KA0KICB4LmZhY3RvciA9IHNpbV9kYXRhJFRlbXBlcmF0dXJlLA0KICB0cmFjZS5mYWN0b3IgPSBzaW1fZGF0YSRDYWxpYnJhdGlvbiwNCiAgcmVzcG9uc2UgPSBzaW1fZGF0YSRyZXNwb25zZSwNCiAgICBtYWluID0gIkEgw5cgRCIsDQogIHR5cGUgPSAiYiIsDQogIGNvbCA9IGMoImJsdWUiLCAicmVkIiksDQogIHBjaCA9IGMoMTksIDE3KQ0KKQ0KDQojQkMNCmludGVyYWN0aW9uLnBsb3QoDQogIHguZmFjdG9yID0gc2ltX2RhdGEkUHJlc3N1cmUsDQogIHRyYWNlLmZhY3RvciA9IHNpbV9kYXRhJE9wZXJhdG9yLA0KICByZXNwb25zZSA9IHNpbV9kYXRhJHJlc3BvbnNlLA0KICAgIG1haW4gPSAiQiDDlyBDIiwNCiAgdHlwZSA9ICJiIiwNCiAgY29sID0gYygiYmx1ZSIsICJyZWQiKSwNCiAgcGNoID0gYygxOSwgMTcpDQopDQoNCiNCRA0KaW50ZXJhY3Rpb24ucGxvdCgNCiAgeC5mYWN0b3IgPSBzaW1fZGF0YSRQcmVzc3VyZSwNCiAgdHJhY2UuZmFjdG9yID0gc2ltX2RhdGEkQ2FsaWJyYXRpb24sDQogIHJlc3BvbnNlID0gc2ltX2RhdGEkcmVzcG9uc2UsDQogICAgbWFpbiA9ICJCIMOXIEQiLA0KICB0eXBlID0gImIiLA0KICBjb2wgPSBjKCJibHVlIiwgInJlZCIpLA0KICBwY2ggPSBjKDE5LCAxNykNCikNCg0KI0NEDQppbnRlcmFjdGlvbi5wbG90KA0KICB4LmZhY3RvciA9IHNpbV9kYXRhJE9wZXJhdG9yLA0KICB0cmFjZS5mYWN0b3IgPSBzaW1fZGF0YSRDYWxpYnJhdGlvbiwNCiAgcmVzcG9uc2UgPSBzaW1fZGF0YSRyZXNwb25zZSwNCiAgICBtYWluID0gIkMgw5cgRCIsDQogIHR5cGUgPSAiYiIsDQogIGNvbCA9IGMoImJsdWUiLCAicmVkIiksDQogIHBjaCA9IGMoMTksIDE3KQ0KKQ0KDQpgYGANCg0KDQojIE1vZGVsIFJlZHVjdGlvbg0KDQpJcyBpdCBwb3NzaWJsZSBmb3IgeW91IHRvIHJlZHVjZSB0aGUgbW9kZWw/IEV4cGxhaW4gd2h5IG9yIHNob3VsZCBub3QsIG9yIGlmIHlvdSBzaG91bGQgYW5kIGhvdyB5b3Ugd291bGQgZG8gaXQuDQoNCg0KV2Ugd291bGQgcmVkdWNlIHRoZSBtb2RlbCB0byBqdXN0IHRoZSB0aHJlZSBtYWluIGVmZmVjdHMgb2YgVGVtcGVyYXR1cmUsIFByZXNzdXJlLCBhbmQgTWFjaGluZSBDYWxpYnJhdGlvbi4gQXMgdGFsa2VkIGFib3V0IGluIHRoZSBhbmFseXNpcyBzZWN0aW9uLCB0aGVzZSB0aHJlZSBlZmZlY3RzIGFjY291bnQgZm9yIHRoZSBsYXJnZXN0IGRpZmZlcmVuY2UgaW4gZGVmZWN0IHJhdGUuIFdlIHNob3VsZCByZWR1Y2UgdGhlIG1vZGVsIGFzIHRoaXMgd2lsbCBhbGxvdyB1cyB0byBnYXRoZXIgYSBsYXJnZXIgc2FtcGxlIHNpemUgcGVyIHRyZWF0bWVudCBhcyBmdW5kaW5nIGNhbiBiZSBpbnZlc3RlZCBpbiBtdWx0aXBsZSB0cmlhbHMuIFdlIGFyZSBhYmxlIHRvIGdldCBtb3JlIHRyaWFscyBhcyB0aGUgYW1vdW50IG9mIGZhY3RvcnMgYXJlIGxvd2VyZWQgYXMgY29tcGFyZWQgdG8gdGhlIGZ1bGwgbW9kZWwuDQoNCg0KIyBQb3dlciANCg0KRXhwbGFpbiB3aHkgY2FsY3VsYXRpbmcgcG93ZXIgaW4gdGhpcyBkZXNpZ24gaW4gbWVhbmluZ2xlc3MuDQoNClRoZXJlIGlzIG5vIHN0YXRpc3RpY2FsIHRlc3RpbmcgZHVlIHRvIGl0IGJlaW5nIGFuIHVucmVwbGljYXRlZCBkZXNpZ24gYW5kIHRoZXJlZm9yZSB0aGVyZSBpcyBubyBwb3dlciBpbiB0aGlzIHN0dWR5LiBQb3dlciBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgY2hhbmNlIG9mIGZpbmRpbmcgYSBkaWZmZXJlbmNlIGlmIHRoZXJlIGlzIGEgZGlmZmVyZW5jZSBpbiBhIHN0YXRpc3RpY2FsIHRlc3QuIEFzIG5vIHRlc3Qgd2FzIGNvbmR1Y3RlZCwgdGhlcmUgaXMgbm8gd2F5IHRvIGNvbXB1dGUgcG93ZXIuDQoNCg0KIyBGYWN0b3JpYWwgUmVndWxhcml0aWVzDQoNCkRvIHRoZSByZXN1bHRzIG9mIHlvdXIgZmFjdG9yaWFsIGV4cGVyaW1lbnQgZGlzcGxheSBzcGFyc2l0eSwgaGVyZWRpdHksIGFuZCBoaWVyYXJjaHk/IFN1cHBvcnQgeW91ciBhbnN3ZXIgd2l0aCB5b3VyIHJlc3VsdHMuDQoNClRoaXMgc3R1ZHkgZG9lcyBleGhpYml0IHNwYXJzaXR5IGFzIHRoZSB0aHJlZSB0cmVhdG1lbnRzIG91dCBvZiB0aGUgZmlmdGVlbiB0b3RhbCB0cmVhdG1lbnRzIGV4aGliaXQgdGhlIGxhcmdlc3Qgb2YgdGhlIGVmZmVjdCBvbiB0aGUgZGVmZWN0IHJhdGUuIFRoaXMgc3R1ZHkgZG9lcyBleGhpYml0IGhpZXJhcmNoeSBhcyB0aHJlZSBvZiB0aGUgZm91ciBtYWluIGVmZmVjdHMgYXJlIHRoZSBtb3N0IHNpZ25pZmljYW50IGluIHRoZSBtb2RlbC4gSGVyZWRpdHkgaXMgbm90IGFzIGFwcGxpY2FibGUgYXMgbm8gaW50ZXJhY3Rpb24gdGVybXMgYXJlIHNpZ25pZmljYW50LiBBbHRob3VnaCBoZXJlZGl0eSBkb2VzIHNob3cgdXAgaW4gdGhlIGZvcm0gb2Ygbm8gaW50ZXJhY3Rpb24gdGVybXMgYmVpbmcgc3RyaWN0bHkgbWFkZSB1cCBvZiBpbnNpZ25pZmljYW50IG1haW4gZWZmZWN0cy5TbyBpdCBpcyBpbXBvc3NpYmxlIGZvciBhbiBpbnRlcmFjdGlvbiB0byBiZSBzaWduaWZpY2FudCB3aXRob3V0IGF0IGxlYXN0IG9uZSBvZiBpdHMgcGFyZW50IGVmZmVjdHMgYmVpbmcgc2lnbmlmaWNhbnQuDQoNCiMgTGltaXRhdGlvbnMgJiBXaGF0IFlvdeKAmWQgRG8gTmV4dA0KDQpEaXNjdXNzIGlzc3VlcyB5b3Ugc2VlIHdpdGggdGhpcyBkZXNpZ24uIERvIHlvdSBoYXZlIGlzc3VlcyB3aXRoIENvbmZvdW5kaW5nIGVmZmVjdHM/IEFyZSB0aGVyZSBkZXNpZ24gd2Vha25lc3Nlcz8gR2l2ZSBmb2xsb3cgdXAgZXhwZXJpbWVudCBpZGVhcy4NCg0KVGhlIGJpZ2dlc3QgaXNzdWUgd2l0aCB0aGlzIGRlc2lnbiBpcyB0aGF0IHRoZXJlIGlzIG5vIHJlcGxpY2F0aW9uLiBEdWUgdG8gdGhpcywgc3RhdGlzdGljYWwgdGVzdHMgY2FuIG5vdCBiZSBjb25kdWN0ZWQgb24gdGhlIGRhdGEuIFdpdGhvdXQgcmVwbGljYXRpb24sIHdlIGhhdmUgbm8gd2F5IG9mIGtub3dpbmcgdGhhdCB0aGUgcmVzdWx0cyB3ZSBnb3QgYXJlIG5vdCBvdXRsaWVycyBhbmQgYWN0dWFsbHkgcmVwcmVzZW50IHRoZSB0cnVlIGVmZmVjdCB0aGF0IGVhY2ggdHJlYXRtZW50IGhhcyBvbiB0aGUgc3lzdGVtLiBUaGVyZSBhcmUgbm8gY29uZm91bmRpbmcgZWZmZWN0cyBpbiB0aGUgc3lzdGVtLiBGb3IgZnVydGhlciBleHBlcmltZW50cywgY29uc2lkZXIgdXNpbmcgdGhlIHJlZHVjZWQgbW9kZWwgdG8gc2F2ZSBvbiBjb3N0cyBhbmQgZ2V0IG1vcmUgdHJpYWxzIHBlciB0cmVhdG1lbnQuDQo=