/**
 * @class Ext.data.identifier.Uuid
 * @extend Ext.data.identifier.Generator
 * @alias data.identifier.uuid
 *
 * This class generates UUID's according to RFC 4122. This class has a default id property.
 * This means that a single instance is shared unless the id property is overridden. Thus,
 * two {@link Ext.data.Model} instances configured like the following share one generator:
 *
 *     Ext.define('MyApp.data.MyModelX', {
 *         extend: 'Ext.data.Model',
 *         identifier: 'uuid'
 *     });
 *
 *     Ext.define('MyApp.data.MyModelY', {
 *         extend: 'Ext.data.Model',
 *         identifier: 'uuid'
 *     });
 *
 * This allows all models using this class to share a commonly configured instance.
 *
 * # Using Version 1 ("Sequential") UUID's
 *
 * If a server can provide a proper timestamp and a "cryptographic quality random number"
 * (as described in RFC 4122), the shared instance can be configured as follows:
 *
 *     Ext.data.identifier.Uuid.Global.reconfigure({
 *         version: 1,
 *         clockSeq: clock, // 14 random bits
 *         salt: salt,      // 48 secure random bits (the Node field)
 *         timestamp: ts    // timestamp per Section 4.1.4
 *     });
 *
 *     // or these values can be split into 32-bit chunks:
 *
 *     Ext.data.identifier.Uuid.Global.reconfigure({
 *         version: 1,
 *         clockSeq: clock,
 *         salt: { lo: saltLow32, hi: saltHigh32 },
 *         timestamp: { lo: timestampLow32, hi: timestamptHigh32 }
 *     });
 *
 * This approach improves the generator's uniqueness by providing a valid timestamp and
 * higher quality random data. Version 1 UUID's should not be used unless this information
 * can be provided by a server and care should be taken to avoid caching of this data.
 *
 * See [http://www.ietf.org/rfc/rfc4122.txt](http://www.ietf.org/rfc/rfc4122.txt) for details.
 */
 
/**
 * @cfg {String} [id=null]
 * The id for this generator instance. By default all model instances share the same
 * UUID generator instance. By specifying an id other then 'uuid', a unique generator instance
 * will be created for the Model.
 * @accessor
 */
 
/**
 * @cfg {Number} [version=4]
 * The Version of UUID. Supported values are:
 *
 *  * 1 : Time-based, "sequential" UUID. To use this type of generator, you must also
 *  specify the `salt`, `timestamp` and `clock` properties. For details on the values
 *  and how a server should produce them, see RFC 4122. Use of this type of generator
 *  produces values that are easier to read since they are sequential, but requires
 *  some care to initialize properly and still ensure their uniqueness.
 *
 *  * 4 : Pseudo-random UUID. This is the simplest form and requires no configuration
 *  and hence is the default type.
 */
 
/**
 * @cfg {Number/Object} [salt]
 * This value is a 48-bit number. This can be a number or an object with `hi` and `lo`
 * properties where `lo` is the low 32-bits and `hi` is the upper 16 bits.
 *
 * Only applicable when `version` is set to `1`.
 */
 
/**
 * @cfg {Number/Object} [timestamp]
 * When created, this value is a 60-bit number. This can be a number or an object with
 * `hi` and `lo` properties where `lo` is the low 32-bits and `hi` is the upper 28 bits.
 *
 * Only applicable when `version` is set to `1`.
 */
 
/**
 * @cfg {Number} [clockSeq]
 * A clock value to help avoid duplicates.
 *
 * Only applicable when `version` is set to `1`.
 */
 
/**
 * @method reconfigure
 * Reconfigures this generator given new config properties. The only values that this
 * changes are `version` and, if `version` is 1, its related config properties.
 */