LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAgICAgICAgICAgICAgICAKICogRmlsZW5hbWU6ICAgICAgd3JhcHBlci5oCiAqIFZlcnNpb246ICAgICAgIDEuMgogKiBEZXNjcmlwdGlvbjogICBJckRBIFNJUiBhc3luYyB3cmFwcGVyIGxheWVyCiAqIFN0YXR1czogICAgICAgIEV4cGVyaW1lbnRhbC4KICogQXV0aG9yOiAgICAgICAgRGFnIEJyYXR0bGkgPGRhZ2JAY3MudWl0Lm5vPgogKiBDcmVhdGVkIGF0OiAgICBNb24gQXVnICA0IDIwOjQwOjUzIDE5OTcKICogTW9kaWZpZWQgYXQ6ICAgVHVlIEphbiAxMSAxMjozNzoyOSAyMDAwCiAqIE1vZGlmaWVkIGJ5OiAgIERhZyBCcmF0dGxpIDxkYWdiQGNzLnVpdC5ubz4KICogCiAqICAgICBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMCBEYWcgQnJhdHRsaSA8ZGFnYkBjcy51aXQubm8+LCAKICogICAgIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAqICAgICAKICogICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgCiAqICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyAKICogICAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIAogKiAgICAgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqICAgICBOZWl0aGVyIERhZyBCcmF0dGxpIG5vciBVbml2ZXJzaXR5IG9mIFRyb21z+CBhZG1pdCBsaWFiaWxpdHkgbm9yCiAqICAgICBwcm92aWRlIHdhcnJhbnR5IGZvciBhbnkgb2YgdGhpcyBzb2Z0d2FyZS4gVGhpcyBtYXRlcmlhbCBpcyAKICogICAgIHByb3ZpZGVkICJBUy1JUyIgYW5kIGF0IG5vIGNoYXJnZS4KICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2lmbmRlZiBXUkFQUEVSX0gKI2RlZmluZSBXUkFQUEVSX0gKCiNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgojaW5jbHVkZSA8bGludXgvc2tidWZmLmg+CiNpbmNsdWRlIDxsaW51eC9uZXRkZXZpY2UuaD4KCiNpbmNsdWRlIDxuZXQvaXJkYS9pcmRhX2RldmljZS5oPgkvKiBpb2J1ZmZfdCAqLwoKI2RlZmluZSBCT0YgIDB4YzAgLyogQmVnaW5uaW5nIG9mIGZyYW1lICovCiNkZWZpbmUgWEJPRiAweGZmCiNkZWZpbmUgRU9GICAweGMxIC8qIEVuZCBvZiBmcmFtZSAqLwojZGVmaW5lIENFICAgMHg3ZCAvKiBDb250cm9sIGVzY2FwZSAqLwoKI2RlZmluZSBTVEEgQk9GICAvKiBTdGFydCBmbGFnICovCiNkZWZpbmUgU1RPIEVPRiAgLyogRW5kIGZsYWcgKi8KCiNkZWZpbmUgSVJEQV9UUkFOUyAweDIwICAgIC8qIEFzeW5jaHJvbm91cyB0cmFuc3BhcmVuY3kgbW9kaWZpZXIgKi8gICAgICAgCgovKiBTdGF0ZXMgZm9yIHJlY2V2aW5nIGEgZnJhbWUgaW4gYXN5bmMgbW9kZSAqLwplbnVtIHsKCU9VVFNJREVfRlJBTUUsIAoJQkVHSU5fRlJBTUUsIAoJTElOS19FU0NBUEUsIAoJSU5TSURFX0ZSQU1FCn07CgovKiBQcm90byBkZWZpbml0aW9ucyAqLwppbnQgYXN5bmNfd3JhcF9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgX191OCAqdHhfYnVmZiwgaW50IGJ1ZmZzaXplKTsKdm9pZCBhc3luY191bndyYXBfY2hhcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmV0X2RldmljZV9zdGF0cyAqc3RhdHMsCgkJICAgICAgIGlvYnVmZl90ICpidWYsIF9fdTggYnl0ZSk7CgojZW5kaWYK