class CloudIdServiceFactoryImp implements CloudIdServiceFactory {
    long idStart;
    long workId;

    public CloudIdServiceFactoryImp(CloudProps cloudProps) {
        this.idStart = cloudProps.getIdStart();
        this.workId = Long.parseLong(cloudProps.getValue("id.workId", "0"));
    }


    private Map<String, CloudIdService> cached = new HashMap<>();

    @Override
    public CloudIdService create(String group, String service) {<FILL_FUNCTION_BODY>}
}

        String block = group + "_" + service;
        CloudIdService tmp = cached.get(block);

        if (tmp == null) {
            Utils.locker().lock();

            try {
                tmp = cached.get(block);
                if (tmp == null) {
                    tmp = new CloudIdServiceImp(block, workId, idStart);
                    cached.put(block, tmp);
                }
            } finally {
                Utils.locker().unlock();
            }
        }

        return tmp;
    
<no_super_class>