/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
private static final int MODE_SHIFT = 30 ;
private static final int MODE_MASK = 0x3 << MODE_SHIFT;
public static final int UNSPECIFIED = 0 << MODE_SHIFT;
public static final int EXACTLY = 1 << MODE_SHIFT;
public static final int AT_MOST = 2 << MODE_SHIFT;
{
int measureSpec = 0x7fffffff;
int measureSpec2 = 0x40000100;
displayMeasureSpecInfos( measureSpec ) ;
displayMeasureSpecInfos( measureSpec2 ) ;
}
private static void displayMeasureSpecInfos( int spec ) {
System .
out .
println ( "Spec is UNSPECIFIED " + ( getMode
( spec
) == UNSPECIFIED
) ) ; System .
out .
println ( "Spec is EXACTLY " + ( getMode
( spec
) == EXACTLY
) ) ; System .
out .
println ( "Spec is AT_MOST " + ( getMode
( spec
) == AT_MOST
) ) ; System .
out .
println ( "Measure is " + getSize
( spec
) ) ; System .
out .
println ( "-----" ) ; }
public static int getMode( int measureSpec) {
return ( measureSpec & MODE_MASK) ;
}
public static int getSize( int measureSpec) {
return ( measureSpec & ~MODE_MASK) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQoJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1PREVfU0hJRlQgPSAzMDsKICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNT0RFX01BU0sgID0gMHgzIDw8IE1PREVfU0hJRlQ7CiAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTlNQRUNJRklFRCA9IDAgPDwgTU9ERV9TSElGVDsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVYQUNUTFkgICAgID0gMSA8PCBNT0RFX1NISUZUOwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVRfTU9TVCAgICAgPSAyIDw8IE1PREVfU0hJRlQ7CiAgICAgICAgCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlpbnQgbWVhc3VyZVNwZWMgPSAweDdmZmZmZmZmOwoJCWludCBtZWFzdXJlU3BlYzIgPSAweDQwMDAwMTAwOwoJCQoJCWRpc3BsYXlNZWFzdXJlU3BlY0luZm9zKCBtZWFzdXJlU3BlYyApOwoJCWRpc3BsYXlNZWFzdXJlU3BlY0luZm9zKCBtZWFzdXJlU3BlYzIgKTsKCQkKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgdm9pZCBkaXNwbGF5TWVhc3VyZVNwZWNJbmZvcyggaW50IHNwZWMgKSB7CgkJU3lzdGVtLm91dC5wcmludGxuKCBJbnRlZ2VyLnRvSGV4U3RyaW5nKHNwZWMpICk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJTcGVjIGlzIFVOU1BFQ0lGSUVEICIrIChnZXRNb2RlKHNwZWMpID09IFVOU1BFQ0lGSUVEKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJTcGVjIGlzIEVYQUNUTFkgIisgKGdldE1vZGUoc3BlYykgPT0gRVhBQ1RMWSkpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiU3BlYyBpcyBBVF9NT1NUICIrIChnZXRNb2RlKHNwZWMpID09IEFUX01PU1QpKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oICJNZWFzdXJlIGlzICIgKyBnZXRTaXplKHNwZWMpICk7CgkJU3lzdGVtLm91dC5wcmludGxuKCAiLS0tLS0iICk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgaW50IGdldE1vZGUoaW50IG1lYXN1cmVTcGVjKSB7CiAgICAgICAgcmV0dXJuIChtZWFzdXJlU3BlYyAmIE1PREVfTUFTSyk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0U2l6ZShpbnQgbWVhc3VyZVNwZWMpIHsKICAgICAgICByZXR1cm4gKG1lYXN1cmVTcGVjICYgfk1PREVfTUFTSyk7CiAgICB9Cn0=